我正在编写一种方法,以使用户输入具有三个选项的菜单:1、2、3。我的do while循环运行,但是我的while逻辑仍在接受不需要的输入。为什么我的代码没有为设置值范围之外的输入循环?
我尝试了不同的逻辑运算符,在Option 我的目标是在<1和> 3以外的任何用户输入中继续循环,直到输入该范围内的值为止。在当前状态下,如果我输入0,则循环将接受该值并输出-1。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);
}
答案 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);
}