如何用Java循环遍历分数数组按阈值返回对应布尔数组
Java数组阈值判断功能实现
原代码存在的问题
- 判断逻辑误用了未赋值的输出数组
highScores,应该取输入的scores数组的对应元素进行比较 - 入参
threshold是单个int类型的阈值,不是数组,不能使用threshold[i]写法 if判断后多写了分号,会导致判断逻辑直接失效,不会执行对应的赋值操作return语句放在了循环内部,第一次循环就会直接返回未完成赋值的数组
修正后完整代码
public class SimpleArray { /** * 接收考生的分数数组和阈值,返回布尔数组标记每个分数是否高于阈值 * * 示例:输入分数为 [80, 85, 89, 92, 76, 81],阈值为85,返回 [false, false, true, true, false, false] * * @param scores 考生分数数组 * @param threshold 判定阈值 * @return 布尔数组,对应位置为true代表该分数高于阈值,否则为false */ public static boolean[] applicantAcceptable(int[] scores, int threshold) { boolean[] highScores = new boolean[scores.length]; // 遍历所有分数逐个判断 for (int i = 0; i < highScores.length; i++){ // 判断当前分数是否大于阈值,将结果存入输出数组对应位置 highScores[i] = scores[i] > threshold; } // 所有元素判断完成后再返回结果 return highScores; } }
逻辑说明
- 初始化的
highScores数组长度和输入分数数组一致,保证每个分数都有对应的布尔标记 - 循环遍历每个索引位置,取出对应位置的分数和阈值比较,直接将比较的布尔结果赋值给输出数组的对应位置,不需要额外写
if分支也可以实现 - 所有元素遍历完成后再返回最终的输出数组,保证所有分数都完成了判断
内容的提问来源于stack exchange,提问作者alex quintanilla
相关产品推荐
相关产品推荐

