【发布时间】:2023-11-22 21:18:01
【问题描述】:
我必须编写一个程序来检查数组中的数字是否按升序排列。我写了代码,但我得到了这个错误。我必须以某种方式实现这两个参数
boolean isSorted(float[] numbers, boolean ascending){
//tell if the numbers are ascending (ascending == true), or not (ascending == false)
boolean s=ascending;
for(int i = 0; i < numbers.length; i++){
s= numbers[i] < numbers[1+i];
}
return s;
}
boolean a=isSorted(new float[]{1,7,8,9,10,14},true);
System.out.println(a);
这是我返回的错误
created method isSorted(float[],boolean)
| Exception java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5
| at isSorted (#7:5)
| at (#9:1)
true
【问题讨论】:
-
it compiles你确定吗?根据您的编辑,它没有 -
你在调用它时永远不会传入一个布尔值。你需要做
boolean a=isSorted(new float[]{1,7,8,9,10,14}, true);(或假) -
您发布的错误消息告诉您发生了什么。它找到了
float[],但预期的是float[], boolean -
一旦你的
i到达numbers.length - 1,1 + i就会触发AIOOBE。
标签: java arrays sorting oop boolean