向后打印数组中的数字

时间:2016-11-18 01:08:17

标签: java arrays

我是java的新手,我想知道如何修复我的程序,该程序必须从用户输入中获取数字,然后将它们存储在数组中,然后向前打印这些数字然后向后打印。我设法让程序向前打印;但是,当我尝试向后打印时,我得到了

  

线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:4   在arrays4Days.arrayS1.main(arrayS1.java:55)

import java.util.*;
public class arrayS1 {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        System.out.print("How many numbers will you enter? ");
        int count = console.nextInt();
        int myArray[]= new int [count];

        for (int i =0; i < myArray.length ; i++) {
            System.out.print("Type a number: ");
            int number=console.nextInt();
            myArray[i]=number;
        }

        System.out.println();
        System.out.println("Your numbers in forward order:");

        for (int i = 0 ; i < myArray.length ; i++) {
            System.out.println(myArray[i]);
        }

        System.out.println();
        System.out.println("Your numbers in backward order:");

        for (int i = myArray.length ; i> 0  ; i--) {
            System.out.println(myArray[i]);
        }

    }
}

1 个答案:

答案 0 :(得分:4)

请注意,在第一个循环中,i从零开始,然后上升到 - 但不等于 - 数组的长度

for (int i = 0 ; i < myArray.length ; i++) {

所以第二个循环也应该从这个位置开始

for (int i = myArray.length - 1; i>= 0  ; i--) {
    System.out.println(myArray[i]);
}

并且应该降到零