我已经构建了一个包含10个复数7的数组,现在我尝试使用for循环以相反的顺序打印它。但我的程序似乎忽略了这段代码。我没有问题按常规顺序打印,每个循环使用for或a。 这段代码有什么问题?
int[] numbers = new int[10];
for (int i = 0; i < numbers.length; i++) {
numbers[i] = (int) (Math.random() * 10) * 7;
}
for (int i = numbers.length; i == 0; i--) {
System.out.println(numbers[i]);
}
System.out.println("---");
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
答案 0 :(得分:3)
java中大小为N的数组的索引范围为0到 N-1 。所以实际上numbers.length
超出范围 - numbers
中的最后一个元素是索引numbers.length - 1
。同样不是你的条件应该是i >= 0
而不是i==0
,否则你的周期永远不会对大于1的数组执行。
答案 1 :(得分:1)
应该是
for (int i = numbers.length - 1; i >= 0; i--) {
在你的逆序循环中。