如何解决java - 如何编写使用for-each循环在java中的数组上打印奇偶数的代码
我编写了一个代码,应该使用 Java 中的 for-each 循环从数组中打印奇数和偶数,但不幸的是它显示了
"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
有人可以帮忙吗?
这是我的代码供您参考。
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 循环的 Array 中提取,但不幸的是它显示了
“线程“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 循环,允许您直接迭代(例如)数组的内容,而无需显式指定索引。
for-each 循环语法
The syntax of the Java for-each loop is:
for(dataType item : array) {
...
}
这里,
array - 一个数组或一个集合
item - 数组/集合的每一项都分配给这个变量 dataType
数据类型 - 数组/集合数组/集合
这样可以使代码更简洁,也更不容易出错:
for(int n : num) {
if(n%2 == 0) {
System.out.println(n);
}
}
这个循环非常有用,因为很多时候除了访问数组中的元素外,人们还想遍历数组的所有元素而无需真正关心索引。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。