[英]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.