3 回答

TA貢獻1795條經(jīng)驗 獲得超7個贊
下面的代碼應(yīng)該打印出我的數(shù)組的元素,相反,它一次又一次地打印出第一個元素,而不會結(jié)束。我不知道這是否是一件簡單的事情,但我無法找到我的錯誤。盡管這個問題對你們大多數(shù)人來說可能很容易,但我們將不勝感激。
public static void main(String [] args) {
int[] myintarray = {12,32,34};
int index= 0;
while(index < 3)
System.out.println(myintarray[index]);
index++;
}
}
實際結(jié)果: 12 12 12 12 12 12 12 ... 12 預(yù)期結(jié)果: 12 32 34
此致,您的變量index不會在循環(huán)內(nèi)更新:它保持其初始值 ( index = 0),這就是為什么它總是打印數(shù)組中的第一個值。另外,由于index永遠不會更新,因此條件index < 3始終是true,這就是循環(huán)永遠不會結(jié)束的原因。
在 while 循環(huán)體周圍添加大括號可以解決您的問題:
public static void main(String[] args) {
int[] myIntArray = {12, 32, 34};
int index = 0;
while (index < 3) {
System.out.println(myIntArray[index]);
index++;
}
}
輸出:
12
32
34
在您的版本中, while 循環(huán)的主體是單行:System.out.println(myintarray[index]);

TA貢獻1911條經(jīng)驗 獲得超7個贊
這里的問題是,您沒有在要進入 while 循環(huán)的代碼周圍放置大括號。您會看到,當 while 循環(huán)或 for 循環(huán)沒有附加大括號時,在大多數(shù)語言中,循環(huán)只會考慮下一個命令在其中,這將是循環(huán)運行的唯一命令。
因此,當運行你的程序時,程序只重復(fù)“System.out.println(myintarray[index])”,并且從不增加索引,因此“myintarray[index]”的值永遠停留在12。
所以,我們可以通過兩種方式解決這個問題:
int index = 0;
while(index < 3)
{
System.out.println(myintarray[index]);
index++;
}
或者,如果我們想使用 for 循環(huán),
for(int index = 0; index < 3, index++)
{
System.out.println(myintarray[index]);
}

TA貢獻1963條經(jīng)驗 獲得超6個贊
在沒有大括號的 while 中,只有緊跟在 while 后面的語句才會被執(zhí)行。
在您的情況下,這意味著只有 while 之后的第一個語句將被循環(huán),即“System.out.println(myintarray[index]);”。
由于“index++;” 未達到時,您的索引將具有相同的值 0,因此您的程序?qū)⑹冀K打印數(shù)組的第一個元素。您的代碼范圍將在大括號中轉(zhuǎn)換為:
while(index < 3) {
System.out.println(myintarray[index]);
}
index++;
要執(zhí)行多個語句,請將其全部括在大括號內(nèi)。
while(index < 3) {
System.out.println(myintarray[index]);
index++;
}
添加回答
舉報