Как работает if/else в C#? Делаю проверку чётности и путаюсь
Учу условия в C#. Хочу написать программу, которая говорит, чётное число или нечётное, но не понимаю, куда ставить скобки и нужен ли else.
Попытка:
int n = 4;
if n % 2 == 0
Console.WriteLine("чётное");
else
Console.WriteLine("нечётное");
Компилятор ругается. Как правильно писать if в C#?
2 ответа
В C# условие в if обязательно берётся в круглые скобки ( ). У тебя их нет — отсюда ошибка.
Рабочий вариант:
int n = 4;
if (n % 2 == 0)
{
Console.WriteLine("чётное");
}
else
{
Console.WriteLine("нечётное");
}
Фигурные скобки { } объединяют несколько строк в один блок. Если в ветке всего одна команда, скобки можно опустить, но новичкам советую ставить всегда — меньше шансов ошибиться.
Если веток несколько, используется else if:
int score = 75;
if (score >= 90)
Console.WriteLine("отлично");
else if (score >= 60)
Console.WriteLine("норм");
else
Console.WriteLine("надо подтянуть");
Главное помни: в if сравнение через ==, а не =. И условие должно давать bool.
Добавлю про распространённую ошибку без скобок:
if (x > 0)
Console.WriteLine("a");
Console.WriteLine("b"); // ВЫПОЛНИТСЯ ВСЕГДА!
К if относится только первая строка, вторая выполнится при любом x. Поэтому, если хочешь две команды в ветке, оборачивай их в { }. Из-за этого как раз и ставят фигурные скобки всегда.