gpt4 book ai didi

java - Java 中的 Switch/Case 控制台菜单

转载 作者:行者123 更新时间:2023-12-02 04:13:49 26 4
gpt4 key购买 nike

大家好。我在使用 Java 中的 switch/case 菜单时遇到了麻烦。

class ConsoleMenu{
ConsoleMenu(){
}
void ShowMenu(){
System.out.println(1);
System.out.println(2);
System.out.println(3);
}
}
public class Main {
public static void main(String[] args) throws java.io.IOException {
ConsoleMenu cs = new ConsoleMenu();
char ch;
do {
cs.ShowMenu();
ch = (char) System.in.read();
switch (ch) {
case '1':{
System.out.println("228");
break;}
case '2':{
System.out.println("556");
break;}
}
} while (ch != '0');
}
}

当我做出选择时,它会执行类似的操作:

1
2
1
228
1
2
1
2
2
556
1
2
1
2

所以我无法理解为什么 Java 在完成案例后向我显示了两次菜单。有什么建议么?

最佳答案

此行会读取您输入的每个字符,包括按 Enter 键时的新行 '\n'

ch = (char) System.in.read();

一个简单的解决方案是再次读取并丢弃结果。例如

    do {
cs.ShowMenu();
ch = (char) System.in.read();
switch (ch) {
case '1': {
System.out.println("228");
break;
}
case '2': {
System.out.println("556");
break;
}
}
System.in.read();
} while (ch != '0');

关于java - Java 中的 Switch/Case 控制台菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33533236/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com