Как заставить консольное приложение работать, пока пользователь не введет «Q», «q», «Quit» или «Quit» для его завершения? - PullRequest
4 голосов
/ 17 сентября 2010

Как заставить консольное приложение работать, пока пользователь не введет "Q", "q", "Quit" или "quit" для его завершения?

Это мой текущий код:

public class Class1
{
  [STAThread]
  static void Main(string[] args)
  {
    string userName;
    int i = 0, totalCal = 0, cal = 1;

    Console.WriteLine("Welcome to the magical calorie counter!");
    Console.WriteLine();
    Console.Write("Enter in your name -> ");
    userName = Console.ReadLine();

    for (i = 0; i <= 10; i++)
    {
      Console.WriteLine("Hello {0}.....Let's add some calories!!", userName);
    }// end for loop

    Console.WriteLine();

    while (cal != 0)
    {
      Console.Write("Enter some Calories:<or 0 to quit>: ");

      cal = Convert.ToInt32(Console.ReadLine());

      Console.WriteLine("You entered {0}", cal);
      Console.WriteLine();

      totalCal += cal;
      Console.WriteLine();
      Console.WriteLine("-------------------So far you have a total of {0}------------------", totalCal);
      Console.WriteLine();    
      Console.WriteLine();
    }// end of while 
  }// end of amin
}//end of class

Ответы [ 3 ]

5 голосов
/ 17 сентября 2010

Предполагая, что в вашей программе нет других ошибок ... просто добавьте пару строк, например:

using System;

class Class1
{

    [STAThread]
    static void Main(string[] args)
    {
        string userName;
        string line;
        int i = 0, totalCal = 0, cal = 1;

        Console.WriteLine("Welcome to the magical calorie counter!");
        Console.WriteLine();
        Console.Write("Enter in your name -> ");
        userName = Console.ReadLine();

        for (i = 0; i <= 10; i++)
        {
            Console.WriteLine("Hello {0}.....Let's add some calories!!", userName);
        }// end for loop
        Console.WriteLine();


        while (true)
        {

            Console.Write("Enter some Calories:<or 0 to quit>: ");
            line = Console.ReadLine().ToLower();
            if (line == "q" || line == "quit")
            {
                break;
            }
            else if (!int.TryParse(line, cal))
            {
                Console.WriteLine("Not a valid option. Please try again.");
                continue;
            }
            Console.WriteLine("You entered {0}", cal);
            Console.WriteLine();

            totalCal += cal;
            Console.WriteLine();
            Console.WriteLine("-------------------So far you have a total of {0}------------------", totalCal);
            Console.WriteLine();
            Console.WriteLine();
        }// end of while 
    }// end of amin
}
0 голосов
/ 17 сентября 2010

Я думаю, что выход или выход в порядке.Или вы можете принять е или д.

0 голосов
/ 17 сентября 2010

Я бы предпочел сочетание клавиш для опытных пользователей клавиатуры может уже знает, как Ctrl + W, который является клавишей по умолчанию для закрытия вкладок в современных веб-браузерах.

...