Условные операторы в C: if, else и не только — подробное руководство
Условные операторы в C: if, else и не только
Это подробное руководство проведёт вас через основы условных операторов C — if, else, вложенные конструкции — с наглядными примерами и лучшими практиками.
Видео: Оператор if-else в C
Смотрите краткое руководство ниже для наглядной демонстрации концепций.
Оператор if в C
Синтаксис оператора if в C:
if (test expression) {
// код для выполнения, когда условие истинно
}
Как работает оператор if
Тестовое выражение в скобках вычисляется. Если результат ненулевой (истина), выполняется блок кода в фигурных скобках; если ноль (ложь) — пропускается.
- Истина: выполняется тело.
- Ложь: тело пропускается.

Подробнее об истинных и ложных значениях в операторах отношения и логики C на Wikipedia или GeeksforGeeks.
Пример 1: Простой оператор if
// Программа для вывода числа, если оно отрицательное
#include <stdio.h>
int main() {
int number;
printf("Enter an integer: ");
scanf("%d", &number);
// Истина, если число меньше 0
if (number < 0) {
printf("You entered %d.\n", number);
}
printf("The if statement is easy.");
return 0;
}
Вывод 1
Enter an integer: -2 You entered -2. The if statement is easy.
При вводе -2 выражение number < 0 истинно, сообщение печатается.
Вывод 2
Enter an integer: 5 The if statement is easy.
При 5 выражение ложно, printf внутри блока пропускается.
Оператор if…else в C
Добавление блока else позволяет задать альтернативный код для ложного случая. Синтаксис:
if (test expression) {
// код при истинности
} else {
// код при ложности
}
Как работает if…else
• Если тест истинный: выполняется блок if, else пропускается.
• Если тест ложный: выполняется блок else, if пропускается.

Пример 2: Проверка на чётность/нечётность
// Проверка, является ли целое число чётным или нечётным
#include <stdio.h>
int main() {
int number;
printf("Enter an integer: ");
scanf("%d", &number);
// Истина, если остаток равен 0
if (number % 2 == 0) {
printf("%d is an even integer.", number);
} else {
printf("%d is an odd integer.", number);
}
return 0;
}
Вывод
Enter an integer: 7 7 is an odd integer.
Оператор модуля определяет чётность, блок else обрабатывает нечётный случай.
Лестница if…else if…else в C
Когда нужно последовательно проверить несколько условий, идеально подходит лестница if…else if…else.
Синтаксис лестницы
if (condition1) {
// операторы
} else if (condition2) {
// операторы
} else if (condition3) {
// операторы
} else {
// операторы
}
Пример 3: Сравнение двух целых чисел
// Программа для сравнения двух целых чисел
#include <stdio.h>
int main() {
int number1, number2;
printf("Enter two integers: ");
scanf("%d %d", &number1, &number2);
if (number1 == number2) {
printf("Result: %d = %d", number1, number2);
} else if (number1 > number2) {
printf("Result: %d > %d", number1, number2);
} else {
printf("Result: %d < %d", number1, number2);
}
return 0;
}
Вывод
Enter two integers: 12 23 Result: 12 < 23
Вложенные if…else
Вложение if…else внутрь другого позволяет тонкую ветвление без длинной лестницы.
Пример 4: Вложенное сравнение
#include <stdio.h>
int main() {
int number1, number2;
printf("Enter two integers: ");
scanf("%d %d", &number1, &number2);
if (number1 >= number2) {
if (number1 == number2) {
printf("Result: %d = %d", number1, number2);
} else {
printf("Result: %d > %d", number1, number2);
}
} else {
printf("Result: %d < %d", number1, number2);
}
return 0;
}
if…else содержит только один оператор, фигурные скобки {} опциональны, но их использование повышает читаемость и снижает риск ошибок.Пример:
if (a > b) printf("Hello");
printf("Hi");
Тернарный оператор (?:)
Компактная форма условного выражения:
condition ? expression_if_true : expression_if_false;
Пример:
int max = (a > b) ? a : b;
Полезен для простых присваиваний, но не заменяет полные if/else для сложной логики.
Язык C
- Условная логика в C#: if, if-else, if-else-if и вложенные if
- Освоение оператора switch в C#: синтаксис, примеры и лучшие практики
- Оператор break в C#: как и когда использовать
- Оператор continue в C#: как эффективно пропускать итерации циклов
- Освоение условных операторов C++: if, if...else и вложенные if...else
- Освоение оператора break в C++
- Освоение оператора continue в C++: практические примеры и управление циклами
- Освоение оператора switch-case в C++: синтаксис, работа и практические примеры
- Оператор pass в Python: практическое руководство
- Базовый синтаксис C: токены, идентификаторы, ключевые слова и пробелы