You need to enable JavaScript to run this app. Java do while循环内嵌switch实现多输入对应消息输出报错问题
优惠活动
大模型
产品
解决方案
定价
更多

Java do while循环内嵌switch实现多输入对应消息输出报错问题

现有代码的错误点

  • 仅在程序启动时读取了一次输入数字,后续循环逻辑中没有再次读取用户输入的步骤,直接对变量x执行自增操作,完全无法匹配你输入的后续数字序列
  • default分支直接调用return终止程序,遇到示例中17这类未定义的输入值时会直接退出,无法继续等待后续输入
  • 循环终止逻辑冗余,存在重复判断,同时缺少Scanner类的导包语句,运行时会直接报错

修正后的可运行代码

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int x;
        do {
            // 每次循环都读取新的输入数字
            x = scanner.nextInt();
            switch(x) {
                case 1:
                    System.out.println("Language selection");
                    break;
                case 2:
                    System.out.println("Customer support");
                    break;
                case 3:
                    System.out.println("Check the balance");
                    break;
                case 4:
                    System.out.println("Check loan balance");
                    break;
                case 0:
                    System.out.println("Exit");
                    break;
                // 未定义的输入值不做操作,继续等待下一次输入即可
                default:
                    break;
            }
        // 输入为0时直接终止循环
        } while (x != 0);
        scanner.close();
    }
}

运行效果验证

输入序列4 2 17 0时,输出依次为:

Check loan balance
Customer support
Exit

完全符合需求要求。

内容的提问来源于stack exchange,提问作者Rakvåg Olga

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 18:09:03