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

Java如何用单循环遍历两个等长一维数组 实现新冠风险判定功能

新冠感染风险判定程序代码修复方案

业务背景

我正在程序中开发新冠感染风险判定方法,通过绑定低、中、高三类健康风险等级的问题标记判断用户风险情况:例如用户在“a. 发热”问题输入“y”(是)则对应计入低风险累计值,输入“n”则直接跳转至下一题,全部问题作答完成后,根据低、中、高风险的累计计数判定用户最终风险等级。

现有代码核心问题

  • 错误使用双层循环:两个长度相同的对应数组仅需单层循环共用索引即可,双层循环会导致每个问题重复询问10次,完全不符合预期交互逻辑
  • 基本类型值传递问题:low/medium/high是int基本类型,初始化no1SubQuestHealthRisk时仅将三个变量的初始值0复制到数组中,后续修改数组元素不会同步更新三个计数变量,最终风险等级判定逻辑无法拿到正确统计值
  • 存在冗余空元素:两个数组下标0的元素均为无用空值,可直接删除优化
  • 多余输入读取逻辑:循环内多写了一次input.nextLine(),会导致用户输入被异常吞掉

修正后代码

System.out.println("1. 最近14天内您是否出现过以下症状?");
int low = 0, medium = 0, high = 0;
Scanner input = new Scanner(System.in);
String result = "";

// 优化数组结构,删除无用的下标0空元素
String[] no1SubQuestion = {
    "a. 发热",
    "b. 咳嗽/感冒",
    "c. 身体疼痛",
    "d. 咽喉痛",
    "e. 乏力/疲惫",
    "f. 头痛",
    "g. 腹泻",
    "h. 味觉嗅觉丧失",
    "i. 呼吸困难"
};

// 用1/2/3分别标记对应问题所属的风险等级:1=低风险,2=中风险,3=高风险
int[] no1SubQuestHealthRisk = {1,2,3,3,3,3,3,3,3};

// 单层循环共用索引,每次取对应位置的问题和风险等级标记
for (int i = 0; i < no1SubQuestion.length; i++) {
    try {
        System.out.println(no1SubQuestion[i]);
        System.out.printf("(是请输入Y,否请输入N)\n>> ");
        String answer = input.nextLine().trim();

        if (!answer.equalsIgnoreCase("y") && !answer.equalsIgnoreCase("n")) {
            throw new InputMismatchException("invalid input");
        }

        // 用户选是就给对应风险等级的计数+1
        if (answer.equalsIgnoreCase("y")) {
            int riskType = no1SubQuestHealthRisk[i];
            if(riskType == 1) low++;
            else if(riskType == 2) medium++;
            else if(riskType == 3) high++;
        }
    } catch (InputMismatchException e) {
        System.out.println("输入错误!请仅输入Y(是)或N(否)");
        // 输入错误时回退索引,重新询问当前题目
        i--;
    }
}

// 风险等级判定逻辑
if (high > 0) {
    result = "高风险";
} else if (medium > 0 && high == 0) {
    result = "中风险";
} else if ((low == 1 || low == 2) && (medium == 0 && high == 0)) {
    result = "低风险";
} else {
    result = "无风险";
}
return result;

内容的提问来源于stack exchange,提问作者Hi I'm Justin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:45:04