到目前為止,我們已經從陣列的基本知識、迴圈、二維陣列到方法都有所探討。
最後一篇將整理 「實用中常見的模式」 和 「初學者容易踩到的陷阱」。
列出「只要注意這點就沒問題!」的重點!!
int[] nums = {5, 2, 8, 1};
// 簡單的氣泡排序
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums.length - 1; j++) {
if (nums[j] > nums[j + 1]) {
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
for (int i = 0; i < nums.length; i++) {
System.out.println(nums[i]);
}
int[] nums = {10, 20, 30};
int target = 20;
boolean found = false;
for (int i = 0; i < nums.length; i++) {
if (nums[i] == target) {
found = true;
break;
}
}
System.out.println("找到嗎?: " + found);
int[] scores = {55, 80, 100, 60, 70};
int sum = 0;
for (int i = 0; i < scores.length; i++) {
sum = sum + scores[i];
}
System.out.println("合計: " + sum);
System.out.println("平均: " + (double)sum / scores.length);
int[] nums = {1, 2, 3};
System.out.println(nums[3]); // 錯誤!越界
int[] nums;
nums[0] = 10; // 錯誤!陣列尚未使用 new 初始化
int[] a = {1, 2, 3};
int[] b = a; // 指向相同的物件
b[0] = 999;
System.out.println(a[0]); // 999(a也跟著變了)
int[][] m = new int[3][4];
System.out.println(m.length); // 3(行數)
System.out.println(m[0].length); // 4(列數)
行數和列數的 length 不同會容易混淆,注意!
當想一次查看陣列內容時,可以使用 Arrays.toString
或 Arrays.deepToString
會很方便。
import java.util.Arrays;
int[] nums = {1, 2, 3};
System.out.println(Arrays.toString(nums));
int[][] m = {
{1, 2},
{3, 4}
};
System.out.println(Arrays.deepToString(m));
輸出:
[1, 2, 3]
[[1, 2], [3, 4]]
⚡ 小皮卡丘的例子:草叢中潛伏著敵方寶可夢!
int n = 5;
String[][] field = new String[n][n];
// 在草叢中初始化
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
field[i][j] = "🌿";
}
}
// 在對角線上配置敵方寶可夢(可愛系)
String[] enemies = {"🐭", "🐰", "🐥", "🐢", "🐸"};
for (int i = 0; i < n; i++) {
field[i][i] = enemies[i];
}
// 輸出
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.print(field[i][j] + " ");
}
System.out.println();
}
輸出:
🐭 🌿 🌿 🌿 🌿
🌿 🐰 🌿 🌿 🌿
🌿 🌿 🐥 🌿 🌿
🌿 🌿 🌿 🐢 🌿
🌿 🌿 🌿 🌿 🐸
非常感謝你閱讀到這裡。
即使有人認為「程式設計很難…」,
但若你能感受到「有點有趣…!」,我會很高興。
期待你下次的留言,謝謝!
「這一章解釋得很好!」
「這裡的表達沒有問題嗎?」
「下次想要看○○的內容!」等,
請隨時在留言中告訴我們哦!
原文出處:https://qiita.com/hitomin_poke/items/f5684f8af1b2ab5e9ce1