在反转arrayElements并获得异常时需要帮助

时间:2016-05-24 12:49:47

标签: java

我没有退出反转arrayElements并且收到此错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
    at testcases.ReveringInput.main(ReveringInput.java:20). 

这是我的代码

package testcases;
import java.util.Scanner;
public class ReveringInput {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("Enter the Size of an Array");
        int Size = in.nextInt();
        int [] array = new int[Size];
        System.out.println("Enter the elements of an Array");
        int i;

        for(i=0; i< Size ; i++)
        {
            array [i] = in.nextInt();
        }

        for(i= Size ; i <= Size ; i--)
        {
            System.out.println(array[i]);
        } 
    }
}

2 个答案:

答案 0 :(得分:2)

你写了

for(i= Size ; i <= Size ; i--)

使用大小Size初始化的数组仅从0一直到Size - 1,因此将其修改为i=Size -1然后您编写了i <= Size,它始终是如此将无限运行这个不好的代码,你需要将它改为i>=0而不是它应该在这些修改后工作

答案 1 :(得分:0)

Scanner in = new Scanner(System.in);
System.out.println("Enter the Size of an Array");
int size = in.nextInt();
int[] array = new int[size];
System.out.println("Enter the elements of an Array");

for(int i = 0; i < size; i++)
{
    array[i] = in.nextInt();
}

for(int i = size-1; i > -1; i--)
{
    System.out.println(array[i]);
} 

解释第二个for循环:

  • int i = size-1:从最高数组索引开始i。例如,如果size == 5,则array[4]会为您提供最后一个元素。
  • i > -1:运行循环,直到i为0或正数。
  • i--:每次迭代后将i减少一个。

希望这有帮助!