Почему консоль закрывается после ввода Да?

Я делал калькулятор на C#. Вот часть умножения ---

using System;
static class calculator 
{
    public static void Main() 
    {
    welcome:
    Console.WriteLine("Welcome to my calculator, please press enter to         continue");
    Console.ReadLine();
    Console.WriteLine("Do you want to add, subtract, multiply or divide?");
    string x = Convert.ToString(Console.ReadLine());
    if (x == "multiply") 
    {
        Console.WriteLine("Please enter the first value");
        decimal value1multiply = Convert.ToDecimal( Console.ReadLine());
        Console.WriteLine("Please enter the second value" );
        decimal value2multiply = Convert.ToDecimal(Console.ReadLine());
        Console.WriteLine("Result =");
        Console.WriteLine(value1multiply * value2multiply);
        Console.WriteLine("Thank you for using my calculator!Do you still want to use it?Please answer in 'yes' or 'no' and press 'enter'");
        Console.ReadLine();
        string yesorno =Console.ReadLine();
        if (yesorno == "yes") 
        {
            goto welcome;
        }
         if (yesorno == "no") 
         {
            Environment.Exit(0);
        }
    }
         }
       }

Когда я спрашиваю "да", консоль должна вести меня к приветствию. Но вместо этого он никуда меня не ведет и остается пустым. Когда я снова нажимаю Enter, консоль закрывается. Почему это происходит и как я могу предотвратить это?

Что я пробовал:

Я попытался удалить environment.exit(0), думая, что консоль привела меня к этому, но это не помогло. Я даже пытался набрать код в Visual Studio, но без разницы в результате. (Я использую резкое развитие)

1 ответ

Решение

Помимо использования goto, который часто осуждается, вы используете один слишком много ReadLine вызов.

Вот:

Console.ReadLine();
string yesorno = Console.ReadLine();

Может быть, вы набрали yes и затем дважды нажмите Enter. В таком случае yesorno будет пустым, и ваш чек потерпит неудачу. Первая запись проглочена первой ReadLine это не было присвоено переменной.

Другие вопросы по тегам