Java中使用FOR-EACH循环统计高于85分成绩的实现方法
问题解答:使用FOR-EACH循环统计高于85分的成绩数量
原有代码问题梳理
- if判断条件逻辑错误:原代码写的是
score < 85,和需要的“高于85分”要求完全相反 - if语句后多了多余的分号
;,直接导致if判断失效,无论分数是否符合要求都会执行total +=1 - 最终返回值硬编码为
false,没有根据统计的计数结果做判断
修正后完整代码
public class BetterLoop { /** * 当申请人至少有4门成绩高于85分时准入,非计算机专业GPA在此处也视为一门成绩 * * @param scores 申请人的成绩列表 * @return 申请人符合要求则返回true */ public static boolean atLeastFourOver85(int[] scores) { // 初始化高于85分的成绩计数 int countOver85 = 0; // FOR-EACH循环遍历所有成绩 for(int score: scores){ // 当成绩高于85分时计数+1 if (score > 85) { countOver85 += 1; } } // 判断是否至少有4门符合要求,返回对应结果 return countOver85 >= 4; } }
实现逻辑说明
- 首先定义计数变量
countOver85,初始值为0,用来累计高于85分的成绩数量 - 用FOR-EACH循环遍历传入的成绩数组,每次循环拿到单门成绩
score - 每遍历到一门成绩就判断是否大于85,符合条件则计数加1
- 遍历完全部成绩后,判断计数是否大于等于4,直接返回布尔结果即可,完全匹配需求。
内容的提问来源于stack exchange,提问作者alex quintanilla
相关产品推荐
相关产品推荐

