当我运行以下程序时,显示绑定错误异常的索引

时间:2019-02-12 22:01:23

标签: java

它显示错误java.lang.ArrayIndexOutOfBoundsException: 5

我为“ for”循环尝试了不同的值,除此值外,其他所有方法都有效

import java.io.*;
import java.util.*;
public class TestClass {
    public static void main(String[] args) { 
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] arr = new int[n];
        for(int i = 0 ; i<n ; i++)
        {
            arr[i] = in.nextInt();
        }
        for( int j = 0 ; j<n ; j++)
        {
            if(arr[j]>arr[j+1])
            {
                int sw;
                sw = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = sw;
                System.out.println(arr[j] + " ");  
            } else
                System.out.println("error");
        }
    }
}

1 个答案:

答案 0 :(得分:3)

问题出在那一行:

if(arr[j]>arr[j+1])

当到达for循环的迭代,其中j == n-1时,arr[j+1]尝试访问最大索引为n-1的数组的第n个索引(例如,如果数组为大小3,有效索引为0、1和2,但是您的代码正在尝试访问索引3)。

您需要将for循环更改为:

for (int j = 0; j < n - 1; j++)