为什么“返回false”不等于“布尔分数=假”;返回分数;“?ap-1>得分增加

daolsyd0  于 2021-08-20  发布在  Java
关注(0)|答案(2)|浏览(268)

我想询问以下代码,特别是针对第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;
}

提前感谢您的回答。

fykwrbwg

fykwrbwg1#

这只是因为“返回错误在第7行中,正如算法所暗示的,您将提前退出该方法,并获得正确的结果。
若你们只是给分数赋值为假,你们会继续循环,所以,在某些情况下,结果是无效的(只是因为你们可能会用真重新赋值)。

fzsnzjdm

fzsnzjdm2#

因为 return false 停止for循环的执行,并将值返回到 scoresIncreasing 函数在其计数器的score值小于前一个score值时从调用。
而当你使用 score=false for循环在整个数组中运行,然后返回 truefalse 仅当数组的最后一个元素大于或小于其上一个值时

相关问题