2012-09-25 43 views
0

我都無法在互聯網上找到任何提示。 幾乎沒有提及'爲每個'說'不能改變分配在陣列上的值' 是不可能的? 我的代碼是這樣的:我必須使用掃描儀閱讀數字,並且每個

Scanner in = new Scanner(System.in); 
int[] arr = new int[5]; 
for(int i : arr) 
    i = in.nextInt(); 

我想用「的每個」,並通過使用掃描儀類 請幫我看號碼..

+0

是否有一個原因,你想使用 - 每個而不是一個標準?家庭作業也許? –

回答

4

使用簡單for循環,並讀取號碼添加到數組的第i位置:

Scanner in = new Scanner(System.in); 
int[] arr = new int[5]; 
for (int i = 0; i < arr.length; i++) { 
    arr[i] = in.nextInt(); 
} 

它沒有多大意義,使用增強for循環在您的特定情況下,因爲你的陣列最初是空的。您可以在創建陣列上使用它,然而,迭代,那就是:

for (int i : arr) { 
    System.out.println(i); 
} 
+0

使用'for each'是不可能的? – beginner

+0

@beginner:在這個特定的場景中,它沒有多大意義,因爲你正在構建一個數組。 –

0

像這樣簡單: -

Scanner in = new Scanner(System.in); 
int[] arr = {0, 1, 2, 3, 4}; 

for (int i : arr) { 
    arr[i] = in.nextInt(); 
} 

但如上所述通過João Silva說,你應該使用 - 每個循環只遍歷一個已經初始化的數組,而不是初始化它..

+1

在每次迭代中'i'是否是arr [i]的值,而不是索引? –

+0

@ColinD正確。由於數組元素初始化爲0,他不斷更新arr [0] –

+0

O .. ..什麼錯誤..感謝科林指出..然後我們的數組必須初始化爲一些值.. **剛剛看到hmjd答案上面..並得到了答案..在這裏編輯.. –