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

如何在JavaScript中用Do loop配合switch case实现故障分类计数

故障分类统计功能代码修正方案

原有代码存在的问题

  • 多余的input.nextLine()语句:这是Java语法,浏览器JavaScript环境不存在input内置对象,会直接报错导致逻辑中断
  • 循环条件逻辑完全颠倒:原有while(data == "")表示仅当输入为空时继续循环,和需求「输入空值或0时终止」完全相反
  • 缺少总故障数统计逻辑
  • 未做大小写兼容,用户输入小写的s/t/w无法触发计数
  • 缺少异常场景判断,比如用户点prompt的取消按钮返回null也应该终止循环

修正后可运行代码

<html>
<head>
    <title>故障分类统计工具</title>
</head>
<body>
    <script type="text/javascript">
        // 声明变量
        const BR = "<br/>";
        let day = prompt("Enter day: ", "");
        let steering = 0, turbo = 0, wiper = 0;
        let data = "";

        do {
            data = prompt("输入故障标识(S/T/W),输入空或0结束统计:", "");
            // 统一转大写+去首尾空格,兼容用户不规范输入
            const inputCode = data ? data.toUpperCase().trim() : data;
            switch(inputCode) {
                case 'S':
                    steering++;
                    break;      
                case 'T':
                    turbo++;
                    break;
                case 'W':
                    wiper++;
                    break;
                // 其他非法输入不做处理
                default:
                    break;
            }
        // 仅当输入不为空、不为0、不为取消返回的null时继续循环
        } while(data !== "" && data !== "0" && data !== null)   

        // 计算总故障数
        const total = steering + turbo + wiper;
        // 输出结果
        document.write("统计日期: " + day + BR);
        document.write("转向系统(Steering)故障数: " + steering + BR);
        document.write("涡轮(Turbo)故障数: " + turbo + BR);
        document.write("雨刮(Wiper)故障数: " + wiper + BR);
        document.write("总故障数: " + total + BR);
    </script>
</body>
</html>

核心修改说明

  • 删除了无效的input.nextLine()语句,适配浏览器JS运行环境
  • 调整循环条件为data !== "" && data !== "0" && data !== null,满足输入空、0、点击取消按钮都终止统计的需求
  • 新增输入内容大写转换、空格修剪逻辑,兼容用户不规范输入的场景
  • 新增总故障数计算和输出逻辑
  • 优化输出字段命名,可读性更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:36:01