当我输入1,2或3时,它应该从循环中退出或不输入它。但是如果我写了除了那3个数字之外的东西,它应该循环直到我输入1,2或3。
但出于某种原因,我无法进入循环或退出循环。即使输入循环1,2或3是正确的数字也不重要。我仍然输入它并循环。
{{1}}
答案 0 :(得分:7)
您还需要在while循环中分配userValue
。
编辑:需要将您的||
切换为&&
- 该值始终不是3个值中的一个;)
编辑2:您还需要在while循环之前添加作业。谢谢@Nikolai
while (userValue != "1" && userValue != "2" && userValue != "3")
{
message = "try again. Card 1, 2, or, 3?";
Console.WriteLine(message);
// vvvvvv is missing
userValue = Console.ReadLine();
}
在其他新闻中,你听说过do..while loop?
吗?答案 1 :(得分:6)
每次都需要分配Console.ReadLine()
,无论是在循环内还是在循环中。
userValue = Console.ReadLine();
但是你有比这更大的问题,因为userValue != "1" || userValue != "2" || userValue != "3"
永远都是真的。
我认为你的意思是userValue != "1" && userValue != "2" && userValue != "3"
即
string userValue = Console.ReadLine();
string message = "";
Console.WriteLine("Card 1, 2, or, 3?");
userValue = Console.ReadLine(); // Assign
while (userValue != "1" && userValue != "2" && userValue != "3")
{
message = "try again. Card 1, 2, or, 3?";
Console.WriteLine(message);
userValue = Console.ReadLine(); // Assign
}
if (userValue == "1")
{
message = "You win a Coke";
}
else if (userValue == "2")
{
message = "You win a Diet Coke";
}
else if (userValue == "3")
{
message = "You win a Apple Juice";
}
Console.WriteLine(message);
Console.ReadLine();
有关更多示例用法,请参阅Console.ReadLine上的MSDN。