循环时不会退出

时间:2016-01-19 21:50:13

标签: c# loops while-loop

当我输入1,2或3时,它应该从循环中退出或不输入它。但是如果我写了除了那3个数字之外的东西,它应该循环直到我输入1,2或3。

但出于某种原因,我无法进入循环或退出循环。即使输入循环1,2或3是正确的数字也不重要。我仍然输入它并循环。

{{1}}

2 个答案:

答案 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。