[英]Why does this Java code throw an exception?
我是java新手。 我在運行我的代碼時遇到了一些異常:
import java.util.Random;
public class Example {
public static void main(String[] args) {
Random r = new Random();
int[] num= new int[5];
for (int i= 0; 1<num.length; i++)
{
num[i]= r.nextInt(100)+1;
System.out.println(num[i]);
}
}
}
它給了我以下異常:
線程“main”中的異常 java.lang.ArrayIndexOutOfBoundsException: 5 at Example.main(Example.java:13)
為什么我會收到此異常?
首先,您應該始終復制並粘貼異常文本,以免我們嘗試猜測它是哪種類型的異常或它發生的位置
你會得到一個ArrayOutOfBoundsIndexException
,因為循環是無止境的,但索引總是增加。
for (int i= 0; 1<num.length; i++)
一個總是小於num
的length
,因此它永遠循環,每次遞增i
直到i
大於數組大小。 此時你會嘗試這樣做
num[i] ...
i
會越界,拋出異常。
import java.util.Random;
public class test {
public static void main(String[] args) {
Random r = new Random();
int[] num = new int[5];
for (int i = 0; i < num.length; i++) {
num[i] = r.nextInt(100) + 1;
System.out.println(num[i]);
}
}
}
這是循環的工作方式:
for (initialization; termination; increment) {
statement(s)
}
當終止表達式的計算結果為假時,循環終止。 在您的情況下,循環永遠不會終止。 這就是您收到ArrayOutOfBoundsIndexException
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.