在java中,如何使用for-each循环编写打印奇偶数的代码

在java中,如何使用for-each循环编写打印奇偶数的代码,java,arrays,foreach,Java,Arrays,Foreach,我编写了一个代码,该代码应该使用for each循环在Java中打印数组中的奇数和偶数,但不幸的是,它显示了 "Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 22" 即使某些答案打印在编译器中,也不是预期的那样。 例如:输出如下: Even numbers in the Array are: 10 6 4 2 . . Even numbers in the Ar

我编写了一个代码,该代码应该使用for each循环在Java中打印数组中的奇数和偶数,但不幸的是,它显示了

"Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 22"
即使某些答案打印在编译器中,也不是预期的那样。 例如:输出如下:

Even numbers in the Array are:
10
6
4
2
.
.
Even numbers in the Array are:
10
14
4
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 22
但它显示如下:

Even numbers in the Array are:
10
6
4
2
.
.
Even numbers in the Array are:
10
14
4
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 22
有人能帮忙吗

这是我的代码供你参考

公共类主{
公共静态void main(字符串[]args){
int[]num={1,3,9,10,6,5,4,2,22,14,15,7,8};
System.out.println(“数组中的偶数为:”);
for(int i:num){
如果(num[i]%2==0){
System.out.println(num[i]);
}
}
System.out.println(“数组中的奇数为:”);
for(int i:num){
如果(num[i]%2!=0){
System.out.println(num[i]);
}
}
}
}
这里“i”不是数组的索引,这正是元素, 因此,您不需要以这种方式获得值

num[i]
i
仅以这种方式提及就足够了

num[i]
i
因此,最好不要在这样的上下文中使用变量名“i”,而是

for (number: numbers) 
比如说

我写了一个代码,可以打印奇数和偶数 来自Java中使用for each循环的数组,但不幸的是它显示了

"Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 22"
线程“main”java.lang.ArrayIndexOutOfBoundsException中的“异常”: 22”

这是因为您使用数组的元素作为数组本身的索引。它在22处失败,因为它是数组中高于数组大小的第一个值

你有索引基循环

for(int i=0; i<num.length; i++){
    if( num[i]%2 ==0) {
        System.out.println(num[i]);
    }
}
这里,

数组-数组或集合
项-数组/集合的每个项都分配给此变量数据类型
数组/集合数组/集合的数据类型

这使得代码更加简洁,也不容易出错:

for(int n : num) {
    if(n%2 == 0) {
        System.out.println(n);
    }
}
这个循环非常有用,因为很多时候,除了访问数组中的元素外,人们希望迭代数组中的所有元素,而不真正关心索引