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

Java 增強 for 循環編譯錯誤:數組初始化語法誤用

     編輯:程式設計疑難解答

錯誤代碼

int[] s = new int[10]{1,2,3,4,5,6,7,8,9,10}; // 編譯錯誤
for (int i : s) { ... }

錯誤原因

new int[10]{...} **語法非法**。Java 數組初始化只有兩種合法形式:

  1. 靜態初始化:int[] s = {1,2,3,4,5,6,7,8,9,10}; 或 int[] s = new int[]{1,2,3,4,5,6,7,8,9,10};
  2. 動態初始化:int[] s = new int[10];(元素默認 0),後續賦值。

不能同時指定長度 [10] 和初始化列表 {...}。

修正代碼

// 方式一:靜態初始化(推薦)
int[] s = {1,2,3,4,5,6,7,8,9,10};
// 或
int[] s = new int[]{1,2,3,4,5,6,7,8,9,10};

// 方式二:動態初始化後賦值
int[] s = new int[10];
for (int i = 0; i < s.length; i++) s[i] = i + 1;

// 增強 for 正常工作
for (int i : s) {
    System.out.println(i);
}

增強 for 循環原理

編譯器將 for (int i : s) 轉換為索引循環:

for (int idx = 0; idx < s.length; idx++) {
    int i = s[idx];
    // 循環體
}

要求被遍歷對象實現 Iterable 或為數組。

總結

數組初始化**不可同時指定長度與列表**。刪除 [10] 或改用動態初始化即可修復。增強 for 循環本身語法正確,錯誤在數組聲明。

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