@SulimK1ald

Почему срабатывает else даже когда выполняется блок if?

Здравствуйте. В программировании не совсем новичок(учился по Unity), но решил учить чистый C# т.к понял, что мне в нем недостает знаний. Так вот. Домашнее задание было создать свой простой калькулятор через конструкцию IF/ELSE.
Я его сделал, но мне кажется он ведет себя странно и "не по правилам" что ли...
Вот сам код:
static void Main(string[] args)
        {
            Console.WriteLine("Введите два числа!");

            povtor();
            void povtor()
            {
                int num = int.Parse(Console.ReadLine());
                int num2 = int.Parse(Console.ReadLine());

                Console.WriteLine("Числа готовы к операции! Выберите операцию, которую хотите произвести над числами!");
                string str = Console.ReadLine();
                if (str == "+")
                {
                    Console.WriteLine("Сложение!");
                    Console.WriteLine(num + num2);
                }

                if (str == "-")
                {
                    Console.WriteLine("Вычитание!");
                    Console.WriteLine(num - num2);
                }

                if (str == "/")
                {
                    Console.WriteLine("Деление!");
                    Console.WriteLine(num / num2);
                }

                if (str == "*")
                {
                    Console.WriteLine("Умножение!");
                    Console.WriteLine(num * num2);
                }
                else
                {
                    Console.WriteLine("Вы выбрали неправильную операцию!");
                    povtor();
                }
            }
        }


Как видно, я создал метод, в нем же написал код калькулятора и вызываю его в самом начале запуска программы, чтобы после каждой операции не приходилось перезапускать калькулятор для новых вычислений(своего рода цикл, но без конструкции for).

И блок else по идее должен срабатывать только в тех случаях, когда остальные условия if оказались неверны(false), но несмотря на это он срабатывает даже тогда, когда блоки if оказываются true.

Почему так?
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
он срабатывает на последний если хотите по вашей логике то используйте

if
else if
....
else
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы