如果没有Console.Read方法,请按Q退出c#?

时间:2015-09-01 18:29:28

标签: c#

这是我第一次来到这里,我也是C#的新手,所以请耐心等待。 我被赋予了一个编写程序的任务,该程序将打印出最多20个用户输入数字的时间表,并继续询问数字并打印出时间表,直到用户按q退出。

我在打破循环方面遇到了麻烦,我不太清楚为什么。这是迄今为止的计划:

        //variable declarations
        int number;


        //output title
        Console.WriteLine("Welcome to the 20 Times Tables Calculator");

        //output prompt for number
        Console.WriteLine("Please enter a number between 1 and 20 (inclusive).");

        //infinite loop
        for (; ; )
        {


            //input number
            number = int.Parse(Console.ReadLine());
            //validate number
            while (number > 20)
            {
                Console.WriteLine("Please enter a number smaller than 20.");
                number = int.Parse(Console.ReadLine());

            }

            //calculate multiple x number
            //increment i
            //repeat until i = 20
            for (int i = 1; i <= 20; i++)
            {
                Console.WriteLine("\t" + i + " x " + number + " = " + i * number);
            }
            Console.WriteLine("\nEnter another number or press q to quit.");

            //break loop
            //press q to quit
            while (Console.ReadKey().KeyChar != 'q') ;

        }

         //retain console screen
        Console.ReadKey();

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:3)

1)而不是开头的以下行:

number = int.Parse(Console.ReadLine());

从控制台读取一个字符串并检查它是否为“q”,如果不是,则继续:

string line = Console.ReadLine();
if(line == "q")
    break;
number = int.Parse(line);

2)删除以下行,您不再需要它了:

while (Console.ReadKey().KeyChar != 'q') ;

请注意,这将允许用户即使在第一个循环中也退出。