这个问题在这里已经有答案了:
是什么导致java.lang.arrayindexoutofboundsexception以及如何防止它(27个答案)
三天前关门了。
我正在将一个伪代码转换成java来回答“当数组[2,3,5,7]被输入时,算法foo输出什么”的问题。到目前为止,我在java中尝试了一个代码,它给出了一个java.lang.arrayindexoutofboundsexception错误。如果我把伪代码完全转换成java,我就不明白哪里不对了。
这是伪代码:
1: x := 0;
2: for i := 1 to n do
3: x := x + A[i];
4: end for
5: if x < 2 then
6: return f alse;
7: end if
8: for i := 2 to x − 1 do
9: if x mod i = 0 then
10: return f alse;
11: end if
12: end for
13: return true;
下面是我写的代码:
public class foo {
static int[] A = new int[] { 2, 3, 5, 7 };
static int x = 0;
public static void main(String[] args) {
System.out.println();
bb();
}
private static boolean bb() {
for (int i = 1; i <= A.length; i++) {
x = x + A[i];
}
if (x < 2) {
return false;
}
for (int i = 2; i <= x - 1; i++) {
if ((x % i) == 0) {
return false;
}
}
return true;
}
}
用代码我得到了错误
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at foo.bb(foo.java:14)
at foo.main(foo.java:9)
我知道java.lang.arrayindexoutofboundsexception发生在我们试图访问一个数组的元素时,该元素的索引为负数或大于数组本身的大小。但是我不知道我在哪里失败了,我把伪代码转换成java来得到这个错误。我必须准确地将给定的伪代码转换成java。
谢谢
1条答案
按热度按时间mrfwxfqh1#
java是一种基于零的语言:所有索引都从0开始,长度为-1。
更改:
收件人: