🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付

引言

到目前為止,我們已經從陣列的基本知識、迴圈、二維陣列到方法都有所探討。
最後一篇將整理 「實用中常見的模式」「初學者容易踩到的陷阱」
列出「只要注意這點就沒問題!」的重點!!


🎓 實用中常見的陣列用法

排序(Sort)

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]);
}

搜尋(Search)

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);

總結(Aggregate)

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);

🎓 常見的陷阱

1. 陣列下標越界

int[] nums = {1, 2, 3};
System.out.println(nums[3]); // 錯誤!越界

2. 忘記初始化

int[] nums;
nums[0] = 10; // 錯誤!陣列尚未使用 new 初始化

3. 參考複製的誤解

int[] a = {1, 2, 3};
int[] b = a; // 指向相同的物件

b[0] = 999;
System.out.println(a[0]); // 999(a也跟著變了)

4. 二維陣列的 length 用法

int[][] m = new int[3][4];
System.out.println(m.length);     // 3(行數)
System.out.println(m[0].length);  // 4(列數)

行數和列數的 length 不同會容易混淆,注意!


🎓 除錯的小技巧

當想一次查看陣列內容時,可以使用 Arrays.toStringArrays.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


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝19   💬9   ❤️5
666
🥈
我愛JS
📝4   💬14   ❤️7
256
🥉
御魂
💬1  
3
#5
2
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付