我想创建一个简单的do-while语句,确保用户输入是Y或N,如果没有,则要求他们再次输入。如果它是Y或N,则应用程序继续。这是我到目前为止,但我的应用程序虽然只是在一个循环询问用户输入。 C#的新手 - 感谢您的帮助。
string answer = "";
do
{
//Ask the user if they want to roll the dice
Console.WriteLine("Would you like to roll the dice (y or n)?");
//Get the user's response and validate that it is either 'y' or 'n'.
answer = Console.ReadLine();
} while (answer != "Y" || answer != "N");
答案 0 :(得分:2)
看起来像一个简单的布尔逻辑错误。
你的while语句应该是: while(answer!=“Y”&& answer!=“N”);
因为你想确定答案还不是Y而且答案也不是N.循环虽然都不是。希望这有帮助!
答案 1 :(得分:1)
您的逻辑是OR ||
而不是AND &&
。它始终不是Y
或不是N
,因为它不能同时出现。当它是N
时,它不是Y
,反之亦然。
使用AND &&
代替。
此外,您的比较区分大小写。考虑检查大小写。
答案 2 :(得分:1)
更改||和&&这应该为你解决。
另一种看待它的方法可能是:
每当答案为“Y”或答案为“N”时,中断条件就是。
如果不满足中断条件,您希望循环继续,这样您就可以
(回答==“Y”||回答==“N”)然后不是结果
while(!(answer == "Y" || answer == "N")
答案 3 :(得分:1)
2件事
||
&&
Y
& N
因为用户可以输入y
。 Y
和y
都是用户的正面决定。 answer.ToUpper() != "Y" && answer.ToUpper() != "N"