我正在编写一种方法来检查double类型的数组在Java中是否在数值上递增。但是,我不明白为什么我必须交换放置位置return true并使return false代码正常工作。我当然可以保留它,它应该仍然可以工作吗?我不明白什么?
public static boolean isSorted(double[] arr) {
for (int i = 0; i < arr.length-1; i++) {
if (arr[i] < arr[i + 1]) {
return true;
}
}
return false;
}
问题来源:stackoverflow
您将在第一个if语句主体调用处返回,这意味着您正在检查前两个元素是否已排序。false如果有连续对,则应返回,而不进行排序。如果遍历整个数组,但找不到这样的对,则对数组进行排序。这应该可以完成以下工作:
for (int i = 0; i < arr.length-1; i++) {
if (arr[i] > arr[i + 1]) {
return false;
}
}
return true;
答案来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。