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