簡體   English   中英

為什么這段 Java 代碼會拋出異常?

[英]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++)

一個總是小於numlength ,因此它永遠循環,每次遞增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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM