JavaRush /Курсы /C# SELF /Условный оператор: if else

Условный оператор: if else

C# SELF
3 уровень , 1 лекция
Открыта

1. Оператор if else

От программ было бы мало толку, если бы они делали одно и то же, независимо от того, как меняются внешние обстоятельства. Программе нужно уметь подстраиваться под разные ситуации и делать одни действия в одних случаях, другие — в других.

В C# это реализовано с помощью условного оператора — специального ключевого слова, которое позволяет выполнять разные блоки команд в зависимости от правдивости условия.

Условный оператор состоит из трех частей: условия, команды 1 и команды 2. Если условие верно (истинно), выполняется команда 1, иначе выполняется команда 2. Команды никогда не выполняются одновременно. Общий вид этого оператора таков:

if (условие)
   команда1;
else
   команда2;
Условный оператор if-else

if переводится как «если», а else как «иначе». Человеческим языком это можно записать так:

Если условие истинно, то
   выполнить команда1;
иначе
   выполнить команда2;
Условный оператор if-else человеческим языком

Примеры:

//На экран будет выведена надпись: Вы еще ребенок

int age = 17;
if (age < 18)
   Console.WriteLine("Вы еще ребенок");
else
   Console.WriteLine("Вы уже взрослый");
//На экран будет выведена надпись: Тепло

int temperature = 5;
if (temperature < 0)
   Console.WriteLine("На улице мороз");
else
   Console.WriteLine("Тепло");
//На экран будет выведена надпись: Можно сдавать на права

int age = 18;
if (age == 18)
   Console.WriteLine("Можно сдавать на права");
else
   Console.WriteLine("Можно копить на машину");

2. Блок команд

Если при выполнении (или невыполнении) условия вы хотите, чтобы ваша программа исполнила несколько команд, их можно объединить в блок команд.

Чтобы объединить команды в блок, нужно «завернуть» их в фигурные скобки. Вот как это выглядит в общем случае:

{
   команда1;
   команда2;
   команда3;
}

Команд в блоке может быть сколько угодно. И даже ноль.

Примеры сочетания оператора if-else и блока команд:

//На экран будет выведена надпись: Ты еще ребенок. Не спорь со взрослыми

int age = 17;
if (age < 18)
{
   Console.WriteLine("Ты еще ребенок");
   Console.WriteLine("Не спорь со взрослыми");
}
else
{
   Console.WriteLine("Вы уже взрослый");
   Console.WriteLine("Ну и молодежь пошла");
}
//На экран будет выведена надпись: Тепло

int temperature = 5;
if (temperature < 0)
{
   Console.WriteLine("На улице мороз");
   Console.WriteLine("Шапку надень");
}
else
   Console.WriteLine("Тепло");
//Будет выполнен пустой блок команд. На экран ничего не выведется. 

int age = 21;
if (age == 18)
   Console.WriteLine("Явитесь в военкомат");
else
{
}

3. Сокращенный синтаксис оператора if

Если код в блоке else отсутствует, то его можно опустить. Тогда оператор if примет вид:

if (условие)
   команда1;
Условный оператор if

Пример:

int age = 19;
if (age >= 18)
{
    Console.WriteLine("Вы совершеннолетний!");
}

Как это работает?

Если условие истинно, то выполняется блок кода. Если ложно, то ничего не происходит — программа идет дальше.

Блок else в программе есть, но он пустой (между фигурными скобками нет никаких команд). Его можно просто убрать: в программе от этого ничего не поменяется.

4. Комбинирование условий: else if

Иногда нужно проверить не просто "да/нет", а выбрать из нескольких вариантов. Тут на помощь приходит связка else if:

if (условие1)
{
    // Выполняется, если условие1 истинно
}
else if (условие2)
{
    // Выполняется, если условие2 истинно, а условие1 — ложно
}
else
{
    // Выполняется, если ни одно из условий выше не подошло
}

Пример:

int hour = 13;
if (hour < 12)
{
    Console.WriteLine("Доброе утро!");
}
else if (hour < 18)
{
    Console.WriteLine("Добрый день!");
}
else
{
    Console.WriteLine("Добрый вечер!");
}

Что здесь происходит?

  • Если время до 12 — утро.
  • Если от 12 до 18 — день.
  • Если больше — вечер.
  • Программа выбирает только ОДИН из вариантов! Как только подходит условие — остальные даже не проверяются.

5. Схематическая иллюстрация: блок-схема ветвления

Вот как это выглядит в виде блок-схемы:

А если несколько условий:

Это очень напоминает развилки в настольных ролевых играх: идёшь налево — одно, направо — другое, прямо — еще что-то!

6. Какие условия можно проверять?

Внутри круглых скобок после if должно быть ЛОГИЧЕСКОЕ выражение — результат которого true или false.

Основные операторы сравнения:

Оператор Значение Пример
== Равно x == 5
!= Не равно x != 10
> Больше x > 0
< Меньше age < 18
>= Больше или равно score >= 100
<= Меньше или равно count <= 50

Примеры условий:

if (number == 10)
if (age != 18)
if (temperature > 36)
if (balance <= 0)

Заметьте: = (один знак) — это присвоение. == (два знака) — сравнение. Это одна из самых популярных ошибок среди новичков! Если вы нечаянно напишете:

if (x = 5) // ОШИБКА!

— компилятор вас отругает, и очень правильно сделает.

7. Работа со строками в условиях

Можно сравнивать не только числа, но и строки:

string password = Console.ReadLine();
if (password == "qwerty")
{
    Console.WriteLine("Вы вошли!");
}

Внимание: сравнение строк с помощью == в C# работает корректно для обычных случаев, поскольку сравнивает содержимое строк (а не только ссылки на объекты). Подробнее о тонкостях сравнения строк мы еще поговорим ближе к строковым методам и особенностям локализации.

8. Особенности и нюансы:

Фигурные скобки: нужны или нет?

Если после if или else только одна команда, фигурные скобки можно опустить:

if (age > 18)
    Console.WriteLine("Вам больше 18!");

// Но безопаснее ВСЕГДА их писать:
if (age > 18)
{
    Console.WriteLine("Вам больше 18!");
}

Совет: пишите всегда со скобками. Это защитит от кучи ошибок, особенно при расширении кода.

Логические ошибки: внимательнее с условиями!

Если напишете так:

if (age > 18)
    Console.WriteLine("Вам больше 18!");
    Console.WriteLine("Добро пожаловать!");

То компилятор будет читать этот код так:

if (age > 18)
{
    Console.WriteLine("Вам больше 18!");
}

Console.WriteLine("Добро пожаловать!");

Вторая строка всегда будет выполняться — скобки нужны, чтобы обе строки были внутри "ветки".

2
Задача
C# SELF, 3 уровень, 1 лекция
Недоступна
Классификация температуры
Классификация температуры
2
Задача
C# SELF, 3 уровень, 1 лекция
Недоступна
Проверка пароля
Проверка пароля
Комментарии (3)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
jotuo Уровень 10
11 декабря 2025
Разобрался, без паники
Mirunner Уровень 1
21 июля 2025
Ввод с клавиатуры не работает. Задача принята, но есть нюансы. Unhandled exception. System.InvalidOperationException: Cannot read from console in a non-interactive environment. at System.ConsolePal.ReadLine() at System.Console.ReadLine() at Program.<Main>$(String[] args) in /path/to/Program.cs:line 2
Зепп Бранниган Уровень 1 Moderator
31 июля 2025
В какой задаче Вы это заметили?