[英]How to write a code that prints odd-even numbers using for-each loop on an array in java
我编写了一个代码,该代码应该使用 Java 中的 for-each 循环从数组中打印奇数和偶数,但不幸的是它显示
"Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 22"
即使在编译器中打印了一些答案,它也不是应该的。 如:output 会是这样的:
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
有人可以帮忙吗?
这是我的代码供您参考。
public class Main {
public static void main(String[] args) {
int[] num = {1,3,9,10,6,5,4,2,22,14,15,7,8};
System.out.println("Even numbers in the Array are:");
for (int i : num) {
if (num[i] % 2 == 0) {
System.out.println(num[i]);
}
}
System.out.println("The Odd numbers in the Array are:");
for (int i : num) {
if (num[i] % 2 != 0) {
System.out.println(num[i]);
}
}
}
}
for(int i : num)
这里“i”不是你的数组的索引,这正是元素,所以你不需要以这种方式获取值
num[i]
以这种方式引用就足够了
i
所以最好不要在这种情况下使用变量名“i”但是
for (number: numbers)
例如,改为
我编写了一个代码,该代码应该使用 Java 中的 for-each 循环从数组中打印奇数和偶数,但不幸的是它显示
“线程“主”java.lang.ArrayIndexOutOfBoundsException:22 中的异常。
那是因为您将数组的元素用作数组的索引本身。 它在 22 处失败,因为它是数组中大于数组大小的第一个值。
您有基于索引的循环
for(int i=0; i<num.length; i++){
if( num[i]%2 ==0) {
System.out.println(num[i]);
}
}
并且您(除其他外)增强了 for 循环,允许您直接迭代(例如)数组的内容,而无需显式指定索引。
for-each 循环语法
for(dataType item : array) {
...
}
这里,
array - 一个数组或集合
item - 数组/集合的每个项目都分配给此变量 dataType
数据类型 - 数组/集合数组/集合
这使得代码更简洁,也更不容易出错:
for(int n : num) {
if(n%2 == 0) {
System.out.println(n);
}
}
这个循环非常有用,因为除了访问数组中的元素之外,很多时候人们想要遍历数组的所有元素而不真正关心索引。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.