int[] arr = new int[10];
for (int i = 20; i < arr.length; i++) {
arr[i] = i;
}
for (int a : arr) {
System.out.print(a + "\t");
}
遍歷結果 是十個 0;
求解????
uj5u.com熱心網友回復:
第一個for回圈根本就沒進去好吧,為什么不多想想代碼問題,就來提問呢uj5u.com熱心網友回復:
arr.length是10,第一個for第一個條件就是i=20 < 10,不會進入第一個for應該定義int i = 0
uj5u.com熱心網友回復:
謝謝!新手小白送上祝福!uj5u.com熱心網友回復:
第一個回圈沒有進去;第二個回圈 變數初始化int默認值為0uj5u.com熱心網友回復:
i++改成i--試試uj5u.com熱心網友回復:
這段代碼沒問題啊。你的for回圈以開始條件就是false,根本就沒執行進去。哪來的越界啊?uj5u.com熱心網友回復:
沒有進入for回圈啊。uj5u.com熱心網友回復:
第一行int[] arr = new int[10];
這一句代碼會創建一個陣列,每個元素會被賦予一個初始值0
for (int i = 20; i < arr.length; i++) {
arr[i] = i;
}
這里會先初始化i的值為20 在執行判斷陳述句 i < arr.length
20 < 10 顯然是false 回圈結束 陣列中的元素仍然值為0
所以會輸出10個0
uj5u.com熱心網友回復:
兩個for回圈,第二個for回圈,沒有使用陣列下標,所以,沒有報錯的機會。第一個for回圈,你要了解for回圈執行的具體步驟:
1. 執行 第1個分號前的運算式,也就是 int i = 20;
2. 判斷是否進入回圈,看第2個分號前的運算式, 也就是 i < arr.length; 很明顯,由于上1步, i = 20 了,那么,這個條件肯定不成立,所以,不能進入回圈體。
由于程式連回圈都沒有進入,所以,回圈體中的 arr[i] = i; 陳述句沒有得到執行的機會,所以,不會報下角標越界的例外。
May I make myself clear ?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/11218.html
標籤:Java EE
上一篇:跪求各路大佬,請幫忙解決eclipse打開后出現的錯誤提示框
下一篇:SpringBoot創建及啟動
