我试图提示用户再次旋转,我的“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);
}
}
}
答案 0 :(得分:5)
您可能想要使用:
while ((ans != 'N') && (ans != 'Y')) {
检查ans
不是N 而不是Y.如果你在那里使用||
(或),那么它会检查{{1}不是N,或者不是Y(对于ans
的任何值都是如此)。
答案 1 :(得分:4)
非常简单:根据您的比较,ans
必须同时为Y
和N
。
答案 2 :(得分:2)
document.getElementById("houseGenderMale").checked = 'true';
返回true。
如果||
为ans
,则Y
为真,因此整个表达式ans != 'N'
为真。如果(ans != 'N') || (ans != 'Y')
为ans
,则N
为真,那么整个表达式为真。
您想要ans != 'Y'
,其中“(ans != 'N') && (ans != 'Y')
不是ans
而 'N'
也不是ans
。”< / p>
答案 3 :(得分:1)
'Y'
不能同时为'N'和'Y',因此它总是不等于'N'或不等于'Y'。您可能希望将其更改为:
ans
这确保它不等于'N'并且不等于'Y'。