課程
/后端開發
/Java
/Java入門第一季(IDEA工具)升級版
為什么是i<hobbys.length而不是i<=
2018-10-31
源自:Java入門第一季(IDEA工具)升級版 6-5
正在回答
因為數組的下標是從零開始的,i代表的是下標則應為數組的個數減一如:int[]={1,2,3,4,5} 數組有五個數則其下標與其相對應為int[0], int[1], int[2], int[3], int[4] ,若你i等于數組個數則及其下標到int[5] 而實際上是數組小標int[5]沒有對應的數組值則就會報錯數組越界異常
ArrayIndexOutOfBoundsException:
hobbys.length表示數組的長度,這個題的數組有3個,所以hobbys.length的值是3,若i<=3,那么循環判定成立后執行完時i的值為4,此時要輸出hobbys[4],就超出了數組的范圍,會報錯
Exception?in?thread?"main"?java.lang.ArrayIndexOutOfBoundsException:?3 at?HelloWorld.main(HelloWorld.java:10) 改為i<hobbys.length?或者i<=hobbys.length-1即可
所以如果要寫等號的話,要這樣寫:i<=hobbys.length-1
因為i是從0開始的,如果等于.length,就多了一個值了,越界了
簡單講就比如說有5個箱子,如果i等于<=5,當i=4時,剛好是指針指到第5個箱子,如果i=5,那就是第6個箱子了(因為i是從0開始計算的),但是不存在第6個箱子,就會出錯了。
舉報
0基礎萌新入門第一課,從Java環境搭建、工具使用、基礎語法開始
5 回答為什么只有這樣才可以的? for(int i=0 i<hobbys.length;i++){ for(String i=0 i<hobbys.length;i++){才可以的???
1 回答for(int i==0; i<hobbys.length; i++){ 這句代碼有什么問題
3 回答我想問一下for(i=0;i<hobbys.length;i++)能改成for(i=0;i<3;i++)嗎?
5 回答為什么是i%2 == 1。而不是1%2 != 0
5 回答為什么i<=hobbys.length時會出現如下結果
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-04-17
因為數組的下標是從零開始的,i代表的是下標則應為數組的個數減一如:int[]={1,2,3,4,5} 數組有五個數則其下標與其相對應為int[0], int[1], int[2], int[3], int[4] ,若你i等于數組個數則及其下標到int[5] 而實際上是數組小標int[5]沒有對應的數組值則就會報錯數組越界異常
2018-11-01
hobbys.length表示數組的長度,這個題的數組有3個,所以hobbys.length的值是3,若i<=3,那么循環判定成立后執行完時i的值為4,此時要輸出hobbys[4],就超出了數組的范圍,會報錯
2018-11-01
所以如果要寫等號的話,要這樣寫:i<=hobbys.length-1
2018-11-01
因為i是從0開始的,如果等于.length,就多了一個值了,越界了
簡單講就比如說有5個箱子,如果i等于<=5,當i=4時,剛好是指針指到第5個箱子,如果i=5,那就是第6個箱子了(因為i是從0開始計算的),但是不存在第6個箱子,就會出錯了。