Java 排序中边界的数组索引

Java 排序中边界的数组索引,java,indexoutofboundsexception,Java,Indexoutofboundsexception,我已经将排序问题写了如下,但是我得到了一个ArrayIndexOutOfBounds异常。 我没办法弄明白。请帮忙 System.out.println("Enter the total no of digits to sort:- "); n = Integer.parseInt(br.readLine()); x = new int[n]; System.out.println("Enter the elements:- "); for(i = 0; i < n; i++)

我已经将排序问题写了如下,但是我得到了一个
ArrayIndexOutOfBounds
异常。 我没办法弄明白。请帮忙

System.out.println("Enter the total no of digits to sort:-  ");

n = Integer.parseInt(br.readLine());
x = new int[n];

System.out.println("Enter the elements:- ");

for(i = 0; i < n; i++)
    x[i] = Integer.parseInt(br.readLine());

for(i = 0; i < n; i++)
{
    for(j = 0; j < n; j++)
    {
        if(x[j] > x[j+1])  //ascending order
        {
            temp = x[j];
            x[j] = x[j+1];
            x[j+1] = temp;
        }
    }
}
System.out.println(“输入要排序的总位数:-”);
n=Integer.parseInt(br.readLine());
x=新整数[n];
System.out.println(“输入元素:-”);
对于(i=0;ix[j+1])//升序
{
温度=x[j];
x[j]=x[j+1];
x[j+1]=温度;
}
}
}

由于
j
上升到
n
j+1
超出了范围。你需要把它改成

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

for(j=0;j由于
j
上升到
n
j+1
超出范围。您需要将其更改为

for(j=0;j<n-1;j++)
(j=0;j的
错误如下:

if(x[j] > x[j+1]) {
 ....
因为
j+1
等于
n

进行以下更改:

 for(j=0;j + 1<n;j++) {
  ...
对于(j=0;j+1错误如下:

if(x[j] > x[j+1]) {
 ....
因为
j+1
等于
n

进行以下更改:

 for(j=0;j + 1<n;j++) {
  ...

for(j=0;j+1那么x[]的大小是多少?x的大小在运行时初始化。是的,我的问题不再相关,因为您的更新提供了答案。那么x[]的大小是多少?x的大小在运行时初始化。是的,我的问题不再相关,因为您的更新提供了答案。不,
j+1
在最后一个循环上是
n
。虽然在设置
int[n]
时,最后一个索引是
n-1
。因此
int[n]
或其在最后一个循环上的等价物
int[j+1]
将不绑定。例如:int[4]创建键{0,1,2,3}Nop,
j+1
在最后一个循环上是
n
。虽然在设置
int[n]
时,最后一个索引是
n-1
。因此
int[n]
或其在最后一个循环
int[j+1]
上的等价项将不绑定。例如:int[4]创建键{0,1,2,3}我在netbeans n gt中执行了相同的程序,错误是…“java.lang.NoClassDefFoundError:javaapplication3/Main异常在线程“Main”java Result:1中…”。此plz上的帮助。@j这可能是netbeans项目配置的问题。下面是一个错误。我在netbeans n gt中执行了相同的程序,错误是。。。“java.lang.NoClassDefFoundError:javaapplication3/Main异常在线程“Main”java结果:1“……中。有关此plz的帮助。@jhe这可能是netbeans项目配置的问题。下面是一个示例。