@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.

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

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

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

Похожие вопросы