C# 条件为false后循环返回 int用户选择; 字符串用户输入; Console.WriteLine(“欢迎!请输入1、2、2或4进行选择”); DisplayMenuOptions(); userSelection=int.Parse(Console.ReadLine()); while(userSelection>=1&&userSelection

C# 条件为false后循环返回 int用户选择; 字符串用户输入; Console.WriteLine(“欢迎!请输入1、2、2或4进行选择”); DisplayMenuOptions(); userSelection=int.Parse(Console.ReadLine()); while(userSelection>=1&&userSelection,c#,C#,,因为while循环是这样说的:“在输入介于1和4之间时循环”,当用户输入无效输入时,该值变为false 如果您只想在输入等于4时退出,则无需其他操作: int userSelection; string userInput; Console.WriteLine("Welcome! Please make a selection by Entering 1, 2, 2 or 4"); DisplayMenuOptions(); userSelection = int.Parse(Console.

,因为while循环是这样说的:“在输入介于1和4之间时循环”,当用户输入无效输入时,该值变为false

如果您只想在输入等于4时退出,则无需其他操作:

int userSelection;
string userInput;
Console.WriteLine("Welcome! Please make a selection by Entering 1, 2, 2 or 4");
DisplayMenuOptions();
userSelection = int.Parse(Console.ReadLine());

while (userSelection >= 1 && userSelection <= 4)
{
if (userSelection == 1)
{
    // CODES FOR FULL FILE LISTING"
}
else if (userSelection == 2)
{
    // CODES FOR FILTERED FILE LISTING"
}
else if (userSelection == 3)
{
    // CODES FOR DISPLAY FOLDER STATISTICS"
}
else if (userSelection == 4) //code that will be executed every time user select 4
{
    // CODES TO QUIT"
}
else 
{
     Console.WriteLine("ERROR MESSAGE HERE");
}
Console.WriteLine("Press Enter to Continue"); //waits for user to press enter
Console.ReadKey(); //reads user keystroke
Console.Clear(); //clears display information
DisplayMenuOptions();
userSelection = int.Parse(Console.ReadLine()); //reads and converts user selection
}

然后您也可以恢复
}else{
,因为这确实起到了预期的作用。

问题在于您的
,而当选择无效时,
条件会阻止循环进入

如果要检测循环中的无效值,则需要删除此行为

while (userSelection != 4)

请显示userSelection初始化和赋值的位置以及当前代码。它们在beginning@OldProgrammer我已经更新了code@Yasin编辑掉不必要的代码块没有问题,但是您在编辑中切换了一个&&和一个| |,并删除了初始化代码,所以我将它们改回来。如果第一个是错误,请随意更改。第二个提供了上下文,使问题更加完整,因此它可能会保留下来。感谢您这次进行了建设性的编辑。@BradleyDotNET是的,这是原始代码,除了中断部分;所以我将其编辑掉。谢谢您,我理解人们将从中受益是在将来,所以我将其转换为原始帖子,而不是我发布的大量无关代码。不,如果希望在执行该代码时存在循环,可以添加break(就像在初始代码中一样)。但我向您展示的是如何检测循环中的条件。我无法告诉您那里的代码应该做什么。这是您的代码。@Yasin:您是如何确定它在退出前不会显示错误消息的?我相信我的代码是正确的,并且当选择n小于1或大于4。请不要将此转化为关于该代码应该做什么的讨论。我不知道您的代码应该做什么。我运行了代码,输入了无效的输入,然后按enter键,就是这样。好的……无论如何,谢谢您……错误代码应该持续显示,直到用户输入有效的输入……只需ying。无论如何,谢谢。不是。如果它显示了一条消息,然后立即退出,可能很难看到它是否显示了该消息。因此我可以再次问:您是如何确定该消息没有显示的?因为writeline代码在那里,我想它确实显示了该消息。这意味着我确定错误哦,谢谢你,我明白我现在做错了什么!谢谢!是的,它现在可以工作了。每次用户输入无效输入时,应用程序都会显示消息。不过,你可能想用非数字输入来测试。是的,我不知道如何做,所以我正在做一些研究……阅读课堂讲稿并没有给出任何提示how@Yasin看t
TryParse
函数系列
while (true)
{
    if (userSelection == 1)
    {
        // CODES FOR FULL FILE LISTING"
    }
    else if (userSelection == 2)
    {
        // CODES FOR FILTERED FILE LISTING"
    }
    else if (userSelection == 3)
    {
        // CODES FOR DISPLAY FOLDER STATISTICS"
    }
    else if (userSelection == 4) //code that will be executed every time user select 4
    {
        // CODES TO QUIT"
    }
    else 
    {
         Console.WriteLine("ERROR MESSAGE HERE");
         break;
    }
    Console.WriteLine("Press Enter to Continue"); //waits for user to press enter
    Console.ReadKey(); //reads user keystroke
    Console.Clear(); //clears display information
    DisplayMenuOptions();
    userSelection = int.Parse(Console.ReadLine()); //reads and converts user selection
}