关于C#的快速问题。我已经在下面显示了我的代码,我不知道为什么循环永远不会关闭,Do While
循环应该在用户输入“A”或“B”等时关闭,听起来像是一个愚蠢的问题我是刚刚开始C#
do
{
Console.WriteLine("What one would you like to buy? A B C or D");
a = Convert.ToChar(Console.ReadLine());
Console.WriteLine(a);
} while (a != 'A' || a != 'B' || a != 'C' || a != 'D');
答案 0 :(得分:9)
你需要使用“&&”而不是“||”因为你想在不输入a,b,c或d时退出。目前它将继续永远运行,因为a总是不是'a'或不是'b'。
答案 1 :(得分:4)
除了解决您的问题之外,我建议您采用更安全,更清晰的方法,因为如果用户输入多于或少于一个字符,您的代码会抛出异常,并强制用户按 ENTER
使用此代码,用户只需按一个键即可,无论是大写还是小写:
char a;
do
{
Console.WriteLine("Which one would you like to buy? A B C or D");
a = Char.ToUpper(Console.ReadKey().KeyChar);
Console.WriteLine();
} while (!"ABCD".Contains(a));
答案 2 :(得分:1)
用AND(&&)替换OR条件! 因为如果您输入' A',(a ==' A'),那么" a!=' B'"为真,OR条件为TRUE ......
答案 3 :(得分:0)
你应该使用&&在你的条件。 当用户以大写或小写形式输入A或B时,您希望循环停止。在单词中,您希望仅在用户输入的内容不是A而不是B(大写或小写)时继续