Elementor Header #8

48. Конструкция if-else

1. Введение

Конструкция if-else — это один из ключевых элементов программирования, который позволяет выполнять различные блоки кода в зависимости от выполнения условия. Она расширяет возможности простого if, добавляя альтернативный блок кода, который будет выполнен, если условие окажется ложным (false).

2. Основы конструкции if-else

Конструкция if-else позволяет задать два возможных пути выполнения программы: один выполняется, если условие истинно, а другой — если оно ложно.

Синтаксис:

				
					if (условие) {
    // Код, который выполняется, если условие истинно (true)
} else {
    // Код, который выполняется, если условие ложно (false)
}

				
			

3. Пример использования if-else

Рассмотрим пример, где if-else используется для проверки чётности числа.

Пример:

				
					public class Main {
    public static void main(String[] args) {
        int number = 8;

        // Проверка на четность с использованием if-else
        if (number % 2 == 0) {
            System.out.println("The number is even.");
        } else {
            System.out.println("The number is odd.");
        }
    }
}

				
			

В этом примере программа проверяет, делится ли число на 2 без остатка (это и есть проверка на четность). Если условие истинно, выводится сообщение «The number is even.» Если же условие ложно, выполняется блок else, выводящий «The number is odd.»

4. Несколько else if

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

Синтаксис:

				
					if (условие1) {
    // Код, выполняемый, если условие1 истинно
} else if (условие2) {
    // Код, выполняемый, если условие1 ложно, а условие2 истинно
} else {
    // Код, выполняемый, если все вышеуказанные условия ложны
}

				
			

Пример:

				
					public class Main {
    public static void main(String[] args) {
        int score = 85;

        // Оценка результатов теста с использованием if-else if-else
        if (score >= 90) {
            System.out.println("Grade: A");
        } else if (score >= 80) {
            System.out.println("Grade: B");
        } else if (score >= 70) {
            System.out.println("Grade: C");
        } else if (score >= 60) {
            System.out.println("Grade: D");
        } else {
            System.out.println("Grade: F");
        }
    }
}

				
			

В этом примере проверяется значение переменной score, чтобы определить оценку. Программа проходит по цепочке условий, начиная с if, и заканчивая блоком else, который выполняется, если ни одно из предыдущих условий не было выполнено.

5. Вложенные конструкции if-else

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

Пример:

				
					public class Main {
    public static void main(String[] args) {
        int age = 25;
        boolean hasLicense = true;

        // Вложенные конструкции if-else
        if (age >= 18) {
            if (hasLicense) {
                System.out.println("You are allowed to drive.");
            } else {
                System.out.println("You need a license to drive.");
            }
        } else {
            System.out.println("You are too young to drive.");
        }
    }
}

				
			

В этом примере сначала проверяется возраст пользователя. Если пользователь старше 18 лет, программа проверяет наличие водительского удостоверения (hasLicense). Если обе проверки успешны, выводится сообщение «You are allowed to drive.» В противном случае выполняется соответствующий блок else.

6. Распространённые ошибки при использовании if-else

6.1 Ошибка: Отсутствие фигурных скобок

Если в блоках if или else есть более одной строки кода, необходимо использовать фигурные скобки {}. Их отсутствие может привести к неправильной интерпретации программы.

Пример ошибки:

				
					public class Main {
    public static void main(String[] args) {
        int number = 4;

        if (number > 0)
            System.out.println("Positive number");
            System.out.println("This line is not part of if"); // Будет выполнена всегда
    }
}

				
			

Здесь вторая строка всегда будет выполнена, независимо от условия.

Правильный код:

				
					public class Main {
    public static void main(String[] args) {
        int number = 4;

        if (number > 0) {
            System.out.println("Positive number");
            System.out.println("This line is part of if");
        }
    }
}

				
			

6.2 Ошибка: Избыточное использование else if

Иногда код становится избыточным из-за ненужного использования else if. Если предыдущее условие охватывает все случаи, достаточно использовать else.

Пример ошибки:

				
					public class Main {
    public static void main(String[] args) {
        int temperature = 20;

        if (temperature > 30) {
            System.out.println("It's hot.");
        } else if (temperature <= 30 && temperature >= 15) {
            System.out.println("It's warm.");
        } else {
            System.out.println("It's cold.");
        }
    }
}

				
			

В этом примере проверка temperature <= 30 в else if является избыточной.

Правильный код:

				
					public class Main {
    public static void main(String[] args) {
        int temperature = 20;

        if (temperature > 30) {
            System.out.println("It's hot.");
        } else if (temperature >= 15) {
            System.out.println("It's warm.");
        } else {
            System.out.println("It's cold.");
        }
    }
}

				
			

Заключение

Конструкция if-else — это мощный инструмент для управления логикой программы. Она позволяет разрабатывать гибкие и динамичные решения, реагирующие на различные условия. Важно следить за правильностью структуры и избегать распространённых ошибок, чтобы код оставался читаемым и предсказуемым.

7. Тестовое задание

  1. Напишите программу, которая принимает целое число и выводит сообщение:

    • «The number is positive.» если число больше 0.
    • «The number is negative.» если число меньше 0.
    • «The number is zero.» если число равно 0.
  2. Напишите программу, которая проверяет, можно ли пользователя зарегистрировать на веб-сайте:

    • Если пользователю меньше 13 лет, выводится сообщение «Registration denied: too young.»
    • Если пользователю от 13 до 18 лет, проверяется, есть ли у него разрешение родителей. Если есть, выводится сообщение «Registration allowed with parental consent.», иначе «Registration denied: parental consent required.»
    • Если пользователю 18 лет и более, выводится сообщение «Registration allowed.»

Пример решения:

				
					public class Main {
    public static void main(String[] args) {
        int number = -5;

        // Проверка числа
        if (number > 0) {
            System.out.println("The number is positive.");
        } else if (number < 0) {
            System.out.println("The number is negative.");
        } else {
            System.out.println("The number is zero.");
        }

        int age = 17;
        boolean hasParentalConsent = true;

        // Проверка возможности регистрации
        if (age < 13) {
            System.out.println("Registration denied: too young.");
        } else if (age >= 13 && age < 18) {
            if (hasParentalConsent) {
                System.out.println("Registration allowed with parental consent.");
            } else {
                System.out.println("Registration denied: parental consent required.");
            }
        } else {
            System.out.println("Registration allowed.");
        }
    }
}

				
			

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

logo