它显示错误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");
}
}
}
答案 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++)