C#如何结束一个无限循环,该循环还通过控制台应用程序中的“逃生”收回用户输入



我刚刚开始学习C#,我正在练习控制台应用程序中的一些基本编码,我正在尝试制作一个程序,通过使用无限循环和一个程序,将两个整数添加在一起方法。但是我希望能够通过按下逃生来结束循环,但是问题是,当我首次完成循环完成后,除了逃生之外,我将其按下时,该程序崩溃了。它说"输入字符串不是正确的格式。"任何建议都将不胜感激!

谢谢!

namespace ConsoleApplication2
{
class Program
{
    static void Addxy(int x, int y)
    {
        Console.WriteLine(x+y);
    }
    static void Main(string[] args)
    {
        while(true)
            {
            Addxy(Convert.ToInt32(Console.ReadLine()), Convert.ToInt32(Console.ReadLine()));
            ConsoleKeyInfo end;
            end = Console.ReadKey();
            if (end.Key == ConsoleKey.Escape)
                break;
            else
            {
            }

            }
        }
    }
}

您在Console.ReadKey()之前有两个Console.ReadLine()。因此,前两个输入应为数字,然后是逃生键以终止程序。切记在前两个数字输入后按Enter。

您可以使用break结束循环,但是更优雅的方法是定义一个变量,该变量确定循环是否应继续运行。这是我对您的问题的建议:

static void Main(string[] args)
{
    bool keepLooping = true;
    while (keepLooping)
    {
        //Do your stuff here
        if (Console.ReadKey().Key == ConsoleKey.Escape)
        {
            keepLooping = false;
        }
    }
}

,如果您喜欢的话,甚至更短的版本:

static void Main(string[] args)
{
    bool keepLooping = true;
    while (keepLooping)
    {
        //Do your stuff here
        keepLooping = Console.ReadKey().Key != ConsoleKey.Escape;
    }
}

相关内容

最新更新