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
相关产品推荐
相关产品推荐

