java - 做while循环错误(switch语句)

标签 java error-handling switch-statement do-while

我是Java的初学者,并尝试在switch语句中的许多情况下实现do while循环。

    do {

        switch (UserInput){
        case "a2":
        case "a3":
        case "b1":
        case "b2":
        case "b3":
        case "c1":
        case "c2":
        case "c3":
        case "d1":
        case "d2":
        case "d3":
            TextIO.putln("This is a valid move!");
            break;
            default:
                TextIO.putln("Not a valid choice, please try again!");
        }
        } while (UserInput!="a2");

然而,当选择是有效的,它不断地重复“这是一个有效的举措”,反之亦然,当它是无效的。有人能帮忙吗?

最佳答案

我将用Scanner(System.in)给出一个例子:

Scanner s = new Scanner(System.in);
String input = "";

do {
    input = s.next();

    switch(input) {
    case "42":
        System.out.println("Success");
        break;
    default:
        System.out.println("Wrong answer!");
    }
} while(!input.equals("42"));
s.next()是一个阻塞调用(在这种情况下),这意味着在s.next()等待新用户输入时,程序停止执行。

如果没有该调用,则while循环将仅一遍又一遍地评估input的相同值,从而向控制台发送垃圾邮件。

关于java - 做while循环错误(switch语句),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36983141/

相关文章:

java - 在 C++ 中,cin 和 cout 对象与其类 iostream 的关系如何?

java - 在 Java 中解析 JSON 对象

java - str.replace 不替换 char

java - 将可变数量的参数传递给 XSLT 的逻辑

sql - 我可以在 SQL Server/TSQL 中回滚动态 SQL

python - Python 有 argc 参数吗?

PHP开关和大小写逻辑控制

php - Codeigniter 中的 set_error_handler?

c++ - 我应该使用 switch 语句从变量创建 C++ 模板化对象吗?

c++ - 为项目创建一个简单的控制菜单,循环打印提示的次数比预期的多