Вложенная конструкция if — else
Часть раздела Основы путешествия по C на Coddy. Урок 31 из 63.
Мы можем вкладывать операторы if-else друг в друга. Это позволяет создавать иерархические структуры принятия решений.
Например:
if (age > 18) {
if (hasLicense) {
printf("You can drive");
} else {
printf("Get a license first");
}
} else {
printf("Too young to drive");
}Они могут быть вложены бесконечно:
if (condition1) {
if (condition2) {
if (condition3) {
// если condition1, condition2 и condition3 истинны
}
}
}Без фигурных скобок else связывается с ближайшим расположенным выше if, у которого ещё нет else:
if (age > 18)
if (hasLicense)
printf("You can drive");
else
printf("Get a license first");Здесь else относится к if (hasLicense), независимо от того, что показывает отступ. Используй фигурные скобки, чтобы связь была понятной.
Задание
ЛегкоСоздай программу, которая проверяет, может ли человек прокатиться на американских горках. Требования:
- Возраст должен быть не менее 12 лет
- Рост должен быть больше 150 см
- Если человек соответствует обоим требованиям, но ему меньше 15 лет, ему нужен присмотр взрослого
Выводи в каждом случае в точности эти сообщения:
- Если человек слишком молод:
Sorry, you are too young - Если рост недостаточен:
Sorry, you are not tall enough - Если человеку меньше 15 лет и рядом нет взрослого:
Sorry, you need an adult with you - Если человеку меньше 15 лет и рядом есть взрослый:
You can ride with adult supervision! - Если человеку 15 лет или больше и его рост достаточен:
You can ride by yourself!
Попробуйте сами
#include <stdio.h>
int main() {
int age, height;
int hasAdult;
scanf("%d %d %d", &age, &height, &hasAdult); // Не изменяйте эту строку
// Напишите свой код ниже
return 0;
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Управление потоком выполнения
Условный оператор ifIf — elseElse ifКонструкция switch caseТернарный условный операторЗадание на повторениеВложенная конструкция if — else2Переменные
Типы данныхЦелое числоFloat — DoubleСимволыЛогические значенияКонстантыОсновы printfПравила именования переменныхПреобразование типов, часть 1Преобразование типов, часть 2Итоговое задание на повторение3Операторы
Арифметические операторыОператор остатка от деленияИнкремент/декрементОператоры присваиванияОператоры сравненияЛогические операторы. Часть 1Логические операторы. Часть 2Логические операторы. Часть 3Итоговое заданиеПотренируйтесь самостоятельно: Онлайн-компилятор C