我想询问以下代码,特别是针对第7行的代码。这是一个codingbat ap-1>scoresin递增的练习,内容如下
“给定一组分数,如果每个分数等于或大于之前的分数,则返回true。数组的长度为2或更多。“
下面的解决方案是正确的,但是如果我更改行:7从“return false”“得分=错误该方法返回另一个不正确的结果。
请告诉我“返回错误”和“返回错误”之间的区别和“分数=假”为什么会这样?
public boolean scoresIncreasing(int[] scores) {
boolean score = false;
for(int i = 0; i < scores.length-1; i++){
if(scores[i+1] >= scores[i]){
score = true;
}else {
return false;
}
}
return score;
}
提前感谢您的回答。
2条答案
按热度按时间fykwrbwg1#
这只是因为“返回错误在第7行中,正如算法所暗示的,您将提前退出该方法,并获得正确的结果。
若你们只是给分数赋值为假,你们会继续循环,所以,在某些情况下,结果是无效的(只是因为你们可能会用真重新赋值)。
fzsnzjdm2#
因为
return false
停止for循环的执行,并将值返回到scoresIncreasing
函数在其计数器的score值小于前一个score值时从调用。而当你使用
score=false
for循环在整个数组中运行,然后返回true
或false
仅当数组的最后一个元素大于或小于其上一个值时