我尝试在Java中打印数组内部的奇数但这个算法不起作用......有人可以帮我吗?
打印结果如下:
"Exception in thread "main" .java.lang.ArrayIndexOutOfBoundsException: 7
at JavaArray.main(JavaArray.java:12)"
代码:
public class JavaArray {
public static void main(String[] args) {
int[] myArray = {1,3,4,5,8,9,10};
int i = 0;
for(i = 0; i < myArray.length; i++); {
if(myArray[i] % 2 == 1) {
System.out.println(myArray[i]);
}
}
}
}
答案 0 :(得分:4)
删除终止for
循环
for (i = 0; i < myArray.length; i++);
^
答案 1 :(得分:2)
因为你在for循环之后放了分号,变量i递增直到数组的长度(这里是7)。在循环结束之后,你试图通过i来访问myarray元素,这是7,因此它给出了超出范围的异常。
答案 2 :(得分:0)
除了额外的;你需要删除,你可以通过在循环声明中声明int来巩固:
for (int i = 0; i < myArray.length; i++) {
.
.
.
}
答案 3 :(得分:0)
除了@Reimus点之外,您还可以像下面那样进行操作,如果数组尚未排序,则对数组进行排序,在您的情况下进行排序。仅供参考,而不是高于O(N)复杂度的Collections.sort使用哈希集。
public static void main(String[] args) {
int[] myArray={1,3,4,5,8,9,10};
Arrays.sort(str);
for (int i = 1; i < myArray.length; i++) {
if (str[i] == str[i - 1]) {
System.out.println("Dupe-num: " + str[i];
}
}
}