如何正确实现while逻辑

时间:2019-03-26 17:33:16

标签: c#

我正在编写一种方法,以使用户输入具有三个选项的菜单:1、2、3。我的do while循环运行,但是我的while逻辑仍在接受不需要的输入。为什么我的代码没有为设置值范围之外的输入循环?

我尝试了不同的逻辑运算符,在Option

private static MenuOption ReadUserOption()
{
    int Option;
    Console.WriteLine("Please make a selection");
    Console.WriteLine("1, will run TestName, 2 will run Guess that number, 3 Wil quit the program.");
    do 
    {
        Option = Convert.ToInt32(Console.ReadLine());
        return (MenuOption)(Option - 1);
    } while (Option < 1 || Option > 3);

}

我的目标是在<1和> 3以外的任何用户输入中继续循环,直到输入该范围内的值为止。在当前状态下,如果我输入0,则循环将接受该值并输出-1。

1 个答案:

答案 0 :(得分:3)

您只需要将return语句移出循环

private static MenuOption ReadUserOption()
{
    int Option;
    Console.WriteLine("Please make a selection");
    Console.WriteLine("1, will run TestName, 2 will run Guess that number, 3 Wil quit the program.");
    do 
    {
        Option = Convert.ToInt32(Console.ReadLine());
    } while (Option < 1 || Option > 3);
    return (MenuOption)(Option - 1);

}