Полное руководство по языку программирования С# 14 и платформе .NET 10 / Основы программирования на C#

Конструкция if..else и тернарная операция

Начальный ⏱ 3 мин чтения 👁 2 🕓 обновлено 11.08.2026

Условные конструкции - один из базовых компонентов многих языков программирования, которые направляют работу программы по одному из путей в зависимости от определенных условий. Одной из таких конструкций в языке программирования C# является конструкция if..else

Конструкция if/else проверяет истинность некоторого условия и в зависимости от результатов проверки выполняет определенный код.

Ее простейшая форма состоит из блока if:


if(условие)
{
	выполняемые инструкции
}

После ключевого слова if ставится условие. Условие должно представлять значение типа bool. Это может быть непосредственно значение типа bool или результат условного выражения или другого выражения, которое возвращает значение типа bool. И если это условие истинно (равно true), то срабатывает код, который помещен далее после условия внутри фигурных скобок.

Например:


int num1 = 8;
int num2 = 6;
if(num1 > num2)
{
	Console.WriteLine($"Число {num1} больше числа {num2}");
}

В данном случае у нас первое число больше второго, поэтому выражение num1 > num2 истинно и возвращает true, следовательно, управление переходит к строке Console.WriteLine("Число {num1} больше числа {num2}");

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


int num1 = 8;
int num2 = 6;
if (num1 > num2)
    Console.WriteLine($"Число {num1} больше числа {num2}");

// или так
if (num1 > num2) Console.WriteLine($"Число {num1} больше числа {num2}");

Также мы можем соединить сразу несколько условий, используя логические операторы:


int num1 = 8;
int num2 = 6;
if(num1 > num2 && num1==8)
{
	Console.WriteLine($"Число {num1} больше числа {num2}");
}

В данном случае блок if будет выполняться, если num1 > num2 равно true и num1==8 равно true.

Выражение else

Но что, если мы захотим, чтобы при несоблюдении условия также выполнялись какие-либо действия? В этом случае мы можем добавить блок else:


int num1 = 8;
int num2 = 6;
if(num1 > num2)
{
	Console.WriteLine($"Число {num1} больше числа {num2}");
}
else
{
	Console.WriteLine($"Число {num1} меньше или равно числу {num2}");
}

Блок else выполняется, если условие после if ложно, то есть равно false. Если блок else содержит толко одну инструкцию, то оять же мы можем его сократить, убрав фигурные скобки:


int num1 = 8;
int num2 = 6;
if(num1 > num2)
	Console.WriteLine($"Число {num1} больше числа {num2}");
else
	Console.WriteLine($"Число {num1} меньше или равно числу {num2}");

else if

Но в примере выше при сравнении чисел мы можем насчитать три состояния: первое число больше второго, первое число меньше второго и числа равны. Используя конструкцию else if, мы можем обрабатывать дополнительные условия:


int num1 = 8;
int num2 = 6;
if(num1 > num2)
{
	Console.WriteLine($"Число {num1} больше числа {num2}");
}
else if (num1 < num2)
{
    Console.WriteLine($"Число {num1} меньше числа {num2}");
}
else
{
    Console.WriteLine("Число num1 равно числу num2");
}

При необходимости можно добавить несколько выражений else if:


string name = "Alex";

if (name == "Tom")
    Console.WriteLine("Вас зовут Tomas");
else if (name == "Bob")
    Console.WriteLine("Вас зовут Robert");
else if (name == "Mike")
    Console.WriteLine("Вас зовут Michael");
else
    Console.WriteLine("Неизвестное имя");

Тернарная операция

Тернарную операция также позволяет проверить некоторое условие и в зависимости от его истинности выполнить некоторые действия. Она имеет следующий синтаксис:

[первый операнд - условие] ? [второй операнд] : [третий операнд]

Здесь сразу три операнда. В зависимости от условия тернарная операция возвращает второй или третий операнд: если условие равно true, то возвращается второй операнд; если условие равно false, то третий. Например:


int x=3;
int y=2;

int z = x < y ? (x+y) : (x-y);
Console.WriteLine(z);	// 1

Здесь первый операнд (то есть условие) представляет выражение x < y. Если оно равно true, то возвращается второй операнд - (x+y), то есть результат операции сложения. Если условие равно false, то возвращается третий операнд - (x-y).

Результат тернарной операции (то есть второй или третий операнд в зависимости от условия) присваивается переменной z.

Дополнительные материалы

Проверь себя

📋 Тест по теме «Конструкция if..else и тернарная операция» Тест по теме

Практические задания

Лёгкое Ручная проверка Заполните пропуск в коде (2)
+10 XP

В приведённом ниже фрагменте кода из этого урока пропущено одно слово. Определите его и впишите в поле ответа (без кавычек и пробелов).

int num1 = _____;
int num2 = 6;
if(num1 > num2)
{
	Console.WriteLine($"Число {num1} больше числа {num2}");
}
Войдите, чтобы отправить решение
Лёгкое Ручная проверка Заполните пропуск в коде (3)
+10 XP

В приведённом ниже фрагменте кода из этого урока пропущено одно слово. Определите его и впишите в поле ответа (без кавычек и пробелов).

int num1 = 8;
int _____ = 6;
if (num1 > num2)
    Console.WriteLine($"Число {num1} больше числа {num2}");

// или так
if (num1 > num2) Console.WriteLine($"Число {num1} больше числа {num2}");
Войдите, чтобы отправить решение
Лёгкое Ручная проверка Заполните пропуск в коде (4)
+10 XP

В приведённом ниже фрагменте кода из этого урока пропущено одно слово. Определите его и впишите в поле ответа (без кавычек и пробелов).

int num1 = 8;
int num2 = _____;
if(num1 > num2 && num1==8)
{
	Console.WriteLine($"Число {num1} больше числа {num2}");
}
Войдите, чтобы отправить решение
Лёгкое Ручная проверка Заполните пропуск в коде (5)
+10 XP

В приведённом ниже фрагменте кода из этого урока пропущено одно слово. Определите его и впишите в поле ответа (без кавычек и пробелов).

int _____ = 8;
int num2 = 6;
if(num1 > num2)
{
	Console.WriteLine($"Число {num1} больше числа {num2}");
}
else
{
	Console.WriteLine($"Число {num1} меньше или равно числу {num2}");
}
Войдите, чтобы отправить решение
Среднее Ручная проверка Восстановите код по памяти (2)
+20 XP

В этом фрагменте кода урока пропущены два ключевых элемента. Впишите оба пропущенных значения через запятую в порядке появления (например: x, 5).

int num1 = 8;
int _____ = 6;
if(num1 > _____)
{
	Console.WriteLine($"Число {num1} больше числа {num2}");
}
Войдите, чтобы отправить решение
Среднее Ручная проверка Расставьте строки кода в правильном порядке
+20 XP

Строки кода из примера этого урока перемешаны. Впишите их в правильном порядке, каждую строку — с новой строки.

	выполняемые инструкции
{
if(условие)
}
Войдите, чтобы отправить решение
Сложное Ручная проверка Объясните и модифицируйте пример из урока «Конструкция if..else и тернарная операция»
+30 XP

Опишите своими словами, что делает приведённый пример кода из урока «Конструкция if..else и тернарная операция», и предложите одно осмысленное изменение (например, другое входное значение или дополнительное условие). Приведите итоговый код.

if(условие)
{
	выполняемые инструкции
}
Войдите, чтобы отправить решение
Сложное Ручная проверка Найдите потенциальную проблему в коде урока «Конструкция if..else и тернарная операция»
+30 XP

Изучите приведённый фрагмент кода и опишите, при каких входных данных или условиях он может сработать не так, как ожидается (граничный случай, отсутствие проверки и т.п.). Предложите исправленный вариант.

int num1 = 8;
int num2 = 6;
if(num1 > num2)
{
	Console.WriteLine($"Число {num1} больше числа {num2}");
}
Войдите, чтобы отправить решение
Мини-проект Ручная проверка Мини-проект по теме «Конструкция if..else и тернарная операция»
+50 XP

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

Войдите, чтобы отправить решение
Домашнее задание Ручная проверка Домашнее задание по теме «Конструкция if..else и тернарная операция»
+25 XP

Напишите собственную небольшую программу, применяющую материал темы «Конструкция if..else и тернарная операция». Используйте не менее одной конструкции, показанной в примерах урока. Прикрепите код решения и краткое описание того, что он делает.

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

Обсуждение (0)

Войдите, чтобы оставить комментарий.