首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java 增強 for 迴圈遍歷索引陣列:索引值作為陣列下標取值

     編輯:程式設計疑難解答

代碼:


int[] arr = {8,2,1,0,3};
int[] index = {2,0,3,2,4,0,1,3,2,3,3};
for (int i : index) {
    String t += arr[i];
    System.out.println(t);
}

執行流程圖解

  1. `index` 陣列依序產出:`2, 0, 3, 2, 4, 0, 1, 3, 2, 3, 3`。
  2. 每次迴圈 `i` 取得一個索引值。
  3. `arr[i]` 以該索引存取 `arr` 元素:
    `arr[2]=1`, `arr[0]=8`, `arr[3]=0`, `arr[2]=1`, `arr[4]=3`, `arr[0]=8`, `arr[1]=2`, `arr[3]=0`, `arr[2]=1`, `arr[3]=0`, `arr[3]=0`。
  4. 字串 `t` 累加 (注意:原代碼 `String t` 未初始化會編譯錯誤,應 `String t = "";`)。
  5. 每輪印出累加後的 `t`。

輸出序列

1
18
180
1801
18013
180138
1801382
18013820
180138201
1801382010
18013820100

修正可編譯版


public class Demo {
    public static void main(String[] args) {
        int[] arr = {8,2,1,0,3};
        int[] index = {2,0,3,2,4,0,1,3,2,3,3};
        String t = "";
        for (int i : index) {
            t += arr[i];
            System.out.println(t);
        }
    }
}

核心概念

增強 for 迴圈 `for (int i : index)` 讓 `i` 直接取得 **陣列元素值** (此處為索引),再用 `arr[i]` 間接存取另一陣列,這是「索引映射」常見模式。

理解「`i` 是值而非下標」即可看懂此類間接存取邏輯。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved