需要Java反向数组吗?

时间:2016-05-31 18:28:28

标签: java arrays

我在一个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被添加到数组中。我试着在这里阅读其他文章,但由于某种原因它只是越过我。我很抱歉打扰你们,但我知道我需要能够理解它。非常感谢你的帮助

2 个答案:

答案 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}}