如何打印布尔类型方法返回值 实现带boolean返回值的数组有序校验
代码现存问题
- 逻辑方向完全错误:你写的代码是标准的冒泡排序实现,执行时会直接修改传入的原数组元素顺序。哪怕传入的是完全乱序的数组,被排序完成后再做判断,永远会返回“已排序”的错误结果,根本达不到“判断数组初始状态是否有序”的目的。
- 语法不合法:方法声明返回值为
boolean,但全方法没有任何return语句,无法通过编译。 - 边界处理缺失:直接读取
arr[0]的写法没有考虑空数组、长度为0的数组场景,这类场景下会直接抛出数组下标越界异常。
修正后的正确实现
判断数组是否处于升序状态不需要执行排序操作,仅需单次遍历对比相邻元素即可,时间复杂度仅为O(n),远高于双层循环的冒泡实现效率:
public static boolean sorted(int[] arr) { // 覆盖所有默认有序的边界场景 if (arr == null || arr.length <= 1) { return true; } // 逐次对比相邻元素 for (int i = 1; i < arr.length; i++) { // 出现逆序直接返回false,不用继续遍历 if (arr[i - 1] > arr[i]) { return false; } } // 遍历全程无逆序,即为已排序状态 return true; }
控制台输出返回值的方法
在类中添加主方法,直接调用上述方法,将返回的布尔值通过标准打印语句输出即可,示例代码:
public static void main(String[] args) { int[] orderedArr = {2, 4, 6, 8, 10}; System.out.println(sorted(orderedArr)); int[] messyArr = {5, 3, 7, 1, 9}; System.out.println(sorted(messyArr)); }
运行后控制台会直接输出对应的判断结果:
true false
内容的提问来源于stack exchange,提问作者anar1501
相关产品推荐
相关产品推荐

