Здравствуйте. В программировании не совсем новичок(учился по 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.
Почему так?