我在一个java训练营中,有一个关于反转数组并将其打印出来的作业。经过一些搜索等后我想出来了。但我不知道这是我的代码
import java.util.Scanner;
public class Assignment_01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner num = new Scanner(System.in);
int[] arr;
arr = new int[5];
for(int i = 0; i < arr.length; i++) {
System.out.println("Please enter numbers for array");
arr[i] = num.nextInt();
}
for(int i = arr.length; i > 0; i--) {
System.out.print(arr[i - 1] + " ");
}
}
}
我不明白为什么-1被添加到数组中。我试着在这里阅读其他文章,但由于某种原因它只是越过我。我很抱歉打扰你们,但我知道我需要能够理解它。非常感谢你的帮助
答案 0 :(得分:0)
这很简单:在Java中,所有索引都是从0存储而不是从1。
因此,2
实际上返回lastArrayIndex + 1,并且您无法访问6
,因为没有带有此类索引的元素。
作为arr.length
的数组的最后一个索引,我们从它开始。
您的代码实际上与此代码相同(可能您会发现它更直接):
arr[arr.length]
很抱歉发布一个单独的答案 - 没有足够的声誉来撰写评论。
答案 1 :(得分:0)
请记住,数组的最后一个索引是arr.length-1。因此,如果要打印从最后一个索引开始的值,它应该是i-1。 (你的i已被设置为arr.length)。如果你不想拥有arr [i-1]。您可以改为:
{{1}}