开始学习java。收到这样的任务“找到所有偶数和奇数数组元素的和”。我最终写了这段代码。但 IDEA 抛出错误“线程“主”java.lang.IndexOutOfBoundsException 中的异常:索引:2,大小:2”。我无法输入为什么以及如何解决它。此外,应该落入动态数组的数字甚至落入奇数,反之亦然。我希望有人回答:)
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class task7 {
public static void main(String[] args) {
int[] a;
Scanner z = new Scanner(System.in);
System.out.println("Enter the number of elements in the array");
int n = z.nextInt();
a = new int[n];
for (int i = 0; i <= (n - 1); i++) { //Принимаем все числа массива
Scanner x = new Scanner(System.in);
System.out.println("Enter" + " " + i + " " + "number of the array");
int b = x.nextInt();
a[i] = b;
}
List<Integer> even = new ArrayList<Integer>();
List<Integer> odd = new ArrayList<Integer>();
for(int i = 0; i< n; i++){
if (a[i]%2==0) {
even.add(i);
}
else {
odd.add(i);
}
}
int sumEven = 0;
int sumOdd = 0;
for (int i = 0; i < n; i++){
sumEven +=odd.get(i);
}
for (int i = 0; i < n; i++){
sumOdd+=even.get(i);
}
System.out.println("Array of even numbers is: " + even);
System.out.println("The sum of even numbers is " + sumEven);
System.out.println("Array of odd numbers is: " + odd);
System.out.println("The sum of odd numbers is " + sumOdd);
}
}
无需声明 2 个扫描仪,一个可以在课堂上的任何地方使用。学习 Forech 循环,它将有助于迭代数组(我自己没有使用它,所以您可以理解代码)。我建议给变量提供逻辑名称(而不是“a、b、n、x 等),这样您自己和其他人就不会迷失在代码中。如果您对我的代码有疑问,请不要怕羞。