Условные операторы позволяют добавлять логику в программу, изменяя её поведение в зависимости от условий. Программа будет взаимодействовать с пользователем по-разному в зависимости от исходных данных.
Объявление переменной и простое условие
Объявим переменную x и присвоим ей значение 5:
int x = 5;
Создадим условный оператор if. Ключевое слово if следует за открывающей круглой скобкой, внутри которой записывается условие. Для проверки на равенство используется два знака равенства (==). Один знак равенства (=) — это оператор присваивания, а не сравнения.
if (x == 5) {
printf("Супер!\n");
}
Если x равно 5, внутри фигурных скобок выведется «Супер!» в консоль. Если условие ложно, код внутри фигурных скобок не выполнится. Перевод строки \n обеспечивает более чистый вывод.
Операторы сравнения
Можно использовать следующие операторы сравнения:
- > (больше)
- < (меньше)
- >= (больше или равно)
- <= (меньше или равно)
- != (не равно)
Примеры:
if (x > 5) { printf("Вес\n"); }
if (x < 5) { printf("Лес\n"); }
if (x >= 7) { printf("Вес\n"); }
if (x != 10) { printf("Вес\n"); }
Операторы else и else if
Оператор else выполняется, если условие if ложно:
if (x == 10) {
printf("Текст 1\n");
} else {
printf("Текст 2\n");
}
Оператор else if позволяет добавить дополнительные проверки:
if (x == 10) {
printf("x равен 10\n");
} else if (x > 100) {
printf("x больше 100\n");
} else {
printf("Ничего из вышеперечисленного\n");
}
else всегда располагается в конце и не может существовать без if. else if должен следовать за if и может повторяться несколько раз.
Вложенные условные операторы
Условные операторы могут быть вложены друг в друга:
if (x < 5) {
printf("x меньше 5\n");
} else {
if (x == 105) {
printf("x равен 105\n");
}
}
Если внутри условного оператора только одна строка кода, фигурные скобки можно опускать.
Логические операторы
Для объединения условий используются логические операторы:
- || (ИЛИ): условие выполняется, если хотя бы одно из условий истинно.
- && (И): условие выполняется, только если оба условия истинны.
Примеры:
int y = 5;
if (x == 10 || x == 20) { printf("Из\n"); }
if (x == 10 && y < 7) { printf("Но\n"); }
Условный оператор switch
switch используется для проверки одной переменной на равенство нескольким значениям:
int x = 15;
switch (x) {
case 10:
printf("10\n");
break;
case 12:
printf("12\n");
break;
case 15:
printf("15\n");
break;
case 20:
printf("20\n");
break;
default:
printf("Error\n");
break;
}
case — это отдельные случаи проверки. break выходит из switch после выполнения кода в соответствующем case. default выполняется, если ни один из case не соответствует значению переменной.
Булевы переменные
Булевы переменные могут принимать значения true или false. Проверка булевой переменной может быть упрощена:
bool isHisCar = true;
if (isHisCar) { printf("Yes\n"); } // Эквивалентно if (isHisCar == true)
if (!isHisCar) { printf("No\n"); } // Эквивалентно if (isHisCar == false)
Выбор между if-else и switch зависит от задачи. if-else подходит для проверки различных условий, switch — для проверки одной переменной на равенство нескольким значениям.