You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java如何编写processPass方法将分数≥60对应的passing数组元素设为true

问题解决

现有代码问题分析

  • 你当前编写的processPass方法未遍历所有有效下标,仅操作了length这一个非法下标(数组有效下标范围是0~length-1)
  • 判断条件逻辑错误,你判断的是length <= 60,实际需要判断的是scores[当前下标] >= 60
  • 方法内多余的打印逻辑不符合需求,不需要在方法内打印单条结果

修正后的代码实现

1. 修正processPass方法

public static void processPass(boolean[] passing, double[] scores, int length) {
    // 遍历所有有效下标 0到length-1
    for (int i = 0; i < length; i++) {
        // 判断当前下标对应的分数是否>=60
        if (scores[i] >= 60) {
            passing[i] = true;
        } else {
            // 该分支可省略,boolean数组默认初始值就是false
            passing[i] = false;
        }
    }
}

2. 修正main方法,补充调用逻辑

你原来的main方法没有接收getData返回的有效长度,也没有调用processPass,修正后代码如下:

public static void main(String[] args) throws IOException {
    boolean[] isPassing = new boolean[100];
    double[] scores = new double[100]; 
    // 接收返回的有效元素个数
    int length = getData(scores);
    // 调用processPass方法填充isPassing数组
    processPass(isPassing, scores, length);
    
    // 若需要验证结果可添加以下打印逻辑
    for (int i = 0; i < length; i++) {
        System.out.println("分数:" + scores[i] + " 是否通过:" + isPassing[i]);
    }
}

逻辑说明

  • 首先通过for循环遍历0到length-1的所有有效元素,length是你从getData拿到的实际读取到的分数条数,避免操作数组未赋值的空位
  • 每一轮循环对应判断当前下标的分数,满足>=60的条件就给同下标的passing数组赋值为true,否则为false

内容的提问来源于stack exchange,提问作者dnl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 04:39:03