使用无限循环在任何按键上重新启动程序,并在特定按键上保持循环

时间:2017-11-06 05:15:09

标签: c#

我目前有用户输入温度值,并根据温度给出建议。我想设置一个循环来询问用户输入,直到用户按下" N"或" n"。

例如:

//用户输入

//临时推荐

//继续?按任意键N或n退出。

任何按下的键都会再次询问用户输入,N或n会导致程序感谢屏幕上的用户不再显示临时推荐。教授建议我们使用额外的方法来达到预期的效果。

当前错误的代码:

Console.WriteLine("Continue? Press any key to continue, N or n to exit:\n");
{
if (Console.ReadKey().Key == ConsoleKey.N)
else if (Console.ReadKey().Key == ConsoleKey.n)
return;}
}
Console.WriteLine("Thank you");

3 个答案:

答案 0 :(得分:1)

您可以在while循环中使用局部变量,如下所示:

static void main(string[] args)
{
    bool keepGoing = true;

    while (keepGoing)
    {
        DoYourWork();

        Console.WriteLine("Continue? Press any key to continue, N or n to exit:");

        var userWantsToContinue = Console.ReadLine();

        keepGoing = userWantsToContinue?.ToUpper() != "N";
    }
}

答案 1 :(得分:0)

输入do..while循环:)

private static void DoWhatever(string data)
{
    // process your temp
}

// inside main somewhere
Console.WriteLine("Enter temp:");

do
{
    var temp = Console.ReadLine();
    DoWhatever(temp);
    Console.WriteLine("Continue? Press any key to continue, N or n to exit:\n");
}while(Console.ReadKey().Key != ConsoleKey.N);
Console.WriteLine("Thank you");

答案 2 :(得分:0)

您可以使用 break 退出循环

while(true)
{
  //process temperature conversion
  Console.Write("Continue? Press any key to continue, N or n to exit:");
  if (Console.ReadKey().Key == ConsoleKey.N)
  {
    break;
  }

}