Java 用于检查数组是否为升序的代码显示错误

Java 用于检查数组是否为升序的代码显示错误,java,Java,我正在创建代码来检查数组是否按升序排列。我创建了对我来说似乎合乎逻辑的代码;但是,当我输入升序数组时,会收到一条错误消息(但当我输入的数组不是升序数组时,代码会输出“false,正如它应该的那样)。下面是我的代码: public class Ordered { public static boolean isSorted(int[] numbers) { int length = numbers.length; for (int i=0; i <= length-1

我正在创建代码来检查数组是否按升序排列。我创建了对我来说似乎合乎逻辑的代码;但是,当我输入升序数组时,会收到一条错误消息(但当我输入的数组不是升序数组时,代码会输出“false,正如它应该的那样)。下面是我的代码:

public class Ordered {
  public static boolean isSorted(int[] numbers) {
    int length = numbers.length;  
    for (int i=0; i <= length-1; i++) {
      if (numbers[i] > numbers[i+1]) { //here is where I think the error message is showing the issue is
        return false;
      }  
    }
    return true;     
  }
} 
公共类已排序{
公共静态布尔isSorted(int[]数字){
int length=number.length;
对于(int i=0;i numbers[i+1]){//我认为错误消息显示了问题所在
返回false;
}  
}
返回true;
}
} 

试试这个,这样就不会超出数组的最后一个索引:

public static boolean isSorted(int[] numbers) {
    int length = numbers.length;  
    for (int i=0; i < length-1; i++) {
        if (numbers[i] > numbers[i+1]) { 
            return false;
        }  
    }
    return true;     
}
publicstaticbooleanissorted(int[]数字){
int length=number.length;
对于(int i=0;i数[i+1]){
返回false;
}  
}
返回true;
}

您必须在
if(numbers[i]>numbers[i+1])
条件下获得ArrayIndexOutofBounds异常

循环直到,
i
并且直到
i个数字[i+1]){
返回false;
}
}
返回true;
}

这将起作用,因为如果所有prev都是升序,则数字[i+1]应该始终是数组的最后一个元素

公共静态布尔isSorted(int[]数字){

for(int i=0;i数字[i+1]){
返回false;
}
}
返回true;

}

什么是错误信息?请查看页面。当您在错误时发布错误是一个好主意。同时,考虑当您在<代码>长度1 < /代码>时会发生什么,回忆java数组是0索引的。当您到达数组的最后一个索引时,您正在检查I+1,这可能给了您一个ARAYEXTEXOUTFORKEXT异常。n、 谢谢你!这似乎解决了我的问题。但是,我很困惑,如果长度是6,为什么不应该由我说。当我5岁时,我
public static boolean isSorted(int[] numbers) {
    int length = numbers.length;
    for (int i = 0; i < length - 1; i++) {
        if (numbers[i] > numbers[i + 1]) {
            return false;
        }
    }
    return true;
}
for (int i = 0; i < numbers.length - 2; i++) {
    if (numbers[i] > numbers[i + 1]) {
        return false;
    }
}
return true;