Menu
Coddy logo textTech

Nested If - Else

Часть раздела Основы путешествия по Java на Coddy — урок 32 из 73.

Мы можем вкладывать if-else if-else операторы друг в друга. Это позволяет создавать иерархические структуры принятия решений.


Имейте в виду, что глубоко вложенные if операторы могут сделать код труднее для чтения и поддержки.

Например:

if (age > 18) {
    if (hasLicense) {
        System.out.println("You can drive");
    } else {
        System.out.println("Get a license first");
    }
} else {
    System.out.println("Too young to drive");
}

Его можно бесконечно вкладывать:

if (condition1) {
	if (condition2) {
		if (condition3) {
		    // runs only when condition1, condition2 and condition3 are all true
		    ...
		}
	}
}
challenge icon

Задание

Новичок

Создайте программу, которая проверяет, может ли кто-то кататься на американских горках. Требования следующие:

  • Должно быть не менее 12 лет
  • Должен быть выше 150 см
  • Если соответствуют обоим требованиям, но младше 15 лет, требуется сопровождение взрослого

Выводите точно эти сообщения для каждого случая:

  • Если слишком молод: Sorry, you're too young
  • Если недостаточно высокий: Sorry, you're not tall enough
  • Если младше 15 и нет взрослого: Sorry, you need an adult with you
  • Если младше 15 с взрослым: You can ride with adult supervision!
  • Если 15 или старше и достаточно высокий: You can ride by yourself!

Шпаргалка

Вы можете вкладывать if-else if-else операторы друг в друга для создания иерархических структур принятия решений:

if (age > 18) {
    if (hasLicense) {
        System.out.println("You can drive");
    } else {
        System.out.println("Get a license first");
    }
} else {
    System.out.println("Too young to drive");
}

Вложение может быть выполнено бесконечно:

if (condition1) {
    if (condition2) {
        if (condition3) {
            // if condition1, condition2 and condition3 are true
            ...
        }
    }
}

Примечание: Глубоко вложенные операторы if могут сделать код сложнее для чтения и сопровождения.

Попробуйте сами

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int age = scanner.nextInt(); // Не изменяйте эту строку
        int height = scanner.nextInt(); // Не изменяйте эту строку
        boolean hasAdult = scanner.nextBoolean(); // Не изменяйте эту строку

        // Напишите свой код ниже
        
        scanner.close();
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы