用于验证用户输入的C#Do-While语句

时间:2013-10-24 01:49:20

标签: c# visual-studio while-loop do-while

我想创建一个简单的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");

4 个答案:

答案 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件事

  1. 正如所有人所说,用||
  2. 替换&&
  3. 匹配用户输入的大写与Y& N因为用户可以输入yYy都是用户的正面决定。
  4. answer.ToUpper() != "Y" && answer.ToUpper() != "N"