-5 c# loops while-loop
当我输入1,2或3时,它应该从循环中退出或不输入它.但是如果我写的不是那些3个数字,它应该循环直到我输入1,2或3.
但由于某种原因,我不能让它不进入循环或退出它.即使输入循环1,2或3是正确的数字也无关紧要.无论如何,它仍然会输入并循环.
string userValue = Console.ReadLine();
string message = "";
Console.WriteLine("Card 1, 2, or, 3?");
Console.ReadLine();
while (userValue != "1" || userValue != "2" || userValue != "3")
{
message = "try again. Card 1, 2, or, 3?";
Console.WriteLine(message);
Console.ReadLine();
}
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();
Run Code Online (Sandbox Code Playgroud)
您还需要userValue在while循环中分配内部.
编辑:需要切换你的||s &&- 值将永远不是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();
}
Run Code Online (Sandbox Code Playgroud)
在其他新闻中,你听说过do..while循环吗?
您需要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();
Run Code Online (Sandbox Code Playgroud)
有关更多示例用法,请参阅Console.ReadLine上的 MSDN .