【发布时间】:2015-07-25 10:32:08
【问题描述】:
我正在尝试提示用户再次旋转,而我的“while”表达式总是以错误的形式返回...有人有什么想法吗?
reSpin = false;
if (reSpin == false){
System.out.println("Would you like to spin again? Y/N");
char ans = in.next().charAt(0);
if (ans == 'Y'){
reSpin =true;
}else if (ans == 'N'){
System.out.println("Thank you for playing!");
}else {
while ((ans != 'N') || (ans != 'Y')) {
System.out.println("Invalid answer, please only enter Y/N");
System.out.println("Would you like to spin again? Y/N");
ans = in.next().charAt(0);
}
}
}
【问题讨论】:
-
是
Y==N?那么如果ans是Y,则不等于N。N==Y呢?如果ans是N它不是Y。因此,没有一个字母可以同时满足这两个条件。另外,如果你应用De Morgan's laws,那么你的表达式可以写成((ans == 'N') && (ans == 'Y')),这可能更清楚。 -
感谢@ElliottFrisch 提到德摩根!这是我今天看到的第二个可以用这些简单规则解决的问题!
标签: java while-loop boolean