[英]Java Boolean Input Error Checking
所以我试图让用户输入他们的答案作为布尔值,然后对它进行错误检查,但这似乎不起作用。 我是在正确的轨道上还是有更好的方法来做到这一点? 我曾考虑过在输入是字符串的情况下执行此操作,只是将它与我分配给“ true”和“ false”的另外两个字符串进行比较,但是我的while循环是:
while (!continueGame.equalsIgnoreCase(answerTrue) && !continueGame.equalsIgnoreCase(answerFalse)) {
System.out.println("Would you like to try again? (true/false)");
continueGame = keyboard.nextBoolean();
System.out.println();
}
也没用。 我相当确定这与我的不行有关,但我不确定为什么。 无论如何,下面是我使用布尔值而不是字符串进行错误检查的方法。 字符串版本基本上是相同的方式,只是对字符串进行了修改。
public static boolean continueGame() {
boolean continueGame;
System.out.println("Would you like to try again? (true/false)\n");
continueGame = keyboard.nextBoolean();
System.out.println();
while (continueGame != true && continueGame != false) {
System.out.println("Would you like to try again? (true/false)");
continueGame = keyboard.nextBoolean();
System.out.println();
}
if (continueGame) {
return true;
}
else {
System.out.println("We accept your surrender.");
return false;
}
} //End continueGame method
基本上,我只是交换循环的工作方式,以便可以达到破坏条件。
import java.*;
import java.util.Scanner;
public class Loop
{
public static void main(String[] args)
{
boolean continueGame=true;
Scanner keyboard = new Scanner(System.in);
System.out.println("Would you like to try again? (true/false)\n");
continueGame = keyboard.nextBoolean();
while (continueGame) {
System.out.println("Would you like to try again? (true/false)");
continueGame = keyboard.nextBoolean();
if(!continueGame)
{
System.out.println("We accept your surrender.");
}
}
}
}
while(true) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Would you like to try again? (true/false)");
if(keyboard.hasNextBoolean()){
continueGame = keyboard.nextBoolean();
System.out.println();
break;
}
}
这将无限期提示用户输入真/假,直到他们输入有效的布尔值为止。 然后它将打破循环,您可以继续其余代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.