Java 执行while循环错误(switch语句)
我是java初学者,尝试在switch语句中实现许多情况下的do-while循环Java 执行while循环错误(switch语句),java,error-handling,switch-statement,do-while,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":
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");
然而,当选择有效时,它会不断重复“这是一个有效的移动”,反之亦然,当选择无效时。有人能帮忙吗 这是因为用户输入必须在循环中设置,因此用户可以键入其他内容。您只需设置一次用户输入,一次又一次地迭代…我将给出一个使用
扫描仪(System.in)
的示例:
s.next()
如果没有该调用,while循环只会一遍又一遍地计算相同的输入值,并向控制台发送垃圾邮件。在每次迭代计算循环条件之前,您不会得到另一个要验证的输入。您需要使用扫描仪收集循环条件可以验证的另一个输入
Scanner scn= new Scanner(System.in);
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!");
}
// We get the new input that we can check for validity
UserInput = scn.nextLine();
} while (!UserInput.equals("a2"));
你到底想做什么?嗯,在循环结束时,你需要获得另一个输入。否则,它将继续使用循环开始前收到的输入。在执行程序时,停止在页面上重复有效移动或无效移动的消息。获取其他输入是什么意思?正如我在这里所说的完全初学者。我假设UserInput
是一个扫描仪,用于以某种形式收集用户的输入。因此,使用该变量在循环结束时获得第二个输入。您需要创建扫描仪:scanner input=新扫描仪(System.in)代码>然后您可以使用它来存储用户输入。
Scanner scn= new Scanner(System.in);
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!");
}
// We get the new input that we can check for validity
UserInput = scn.nextLine();
} while (!UserInput.equals("a2"));