Java Уроки: if-else и switch-case с примерами

Условные конструкции – фундаментальные элементы любого языка программирования, включая Java. Они позволяют выполнять различные блоки кода в зависимости от истинности или ложности условия. В Java основные условные конструкции реализованы операторами if-else и switch-case.

Условные конструкции if-else

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

int a = 15;
int b = 10;

if (a > b) {
    System.out.println("Да, верно"); 
}

В условии используются операторы сравнения:

  • > (больше)
  • < (меньше)
  • == (равно) Важно: два знака равенства для проверки на равенство, один знак – для присваивания.
  • >= (больше или равно)
  • <= (меньше или равно)
  • != (не равно)

Условия могут содержать любые типы данных: символы (char), строки (String), булевы переменные (boolean) и другие. Java чувствителен к регистру, поэтому ‘A’ и ‘a’ – разные символы.

char sim1 = 'A';
char sim2 = 'a';

if (sim1 == sim2) {
    // Этот код не выполнится
}

Булевы переменные упрощают запись условий:

boolean isHisCar = false;

if (isHisCar) { // Эквивалентно if (isHisCar == true)
    // Этот код не выполнится
}

if (!isHisCar) { // Эквивалентно if (isHisCar == false)
    // Этот код выполнится
}

Операторы else и else if

Оператор else выполняется, если условие в if ложно. else if добавляет дополнительные проверки:

if (isHisCar == true) {
    // ...
} else if (a >= b) {
    System.out.println("Second test");
} else {
    System.out.println("Нет, неверно");
}

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

Объединение условий

Несколько условий объединяются логическими операторами:

  • || (ИЛИ): условие истинно, если хотя бы одно из условий истинно.
  • && (И): условие истинно, только если оба условия истинны.
if (isHisCar == true || a == b) {
    // ...
}

if (isHisCar == true && a == b) {
    // ...
}

Вложенные условия

Условия можно вкладывать друг в друга, создавая сложные логические структуры.

Оператор switch-case

Оператор switch-case используется для проверки переменной на равенство нескольким значениям. Это альтернатива if-else if для множества проверок одного значения.

int nam;
// ... получение значения nam от пользователя ...

switch (nam) {
    case 1:
        System.out.println("Number is 1");
        break;
    case 2:
        System.out.println("Number is 2");
        break;
    case 5:
        System.out.println("Number is 5");
        break;
    case 10:
        System.out.println("Number is 10");
        break;
    default:
        System.out.println("Default");
}

case задает значение, с которым сравнивается переменная. break выходит из оператора switch. default выполняется, если ни один из case не совпал. В switch-case можно проверять только на строгое равенство.

Пример: простой калькулятор

Пример простого калькулятора, использующего switch-case для обработки математических операций (обратите внимание на обработку ввода, чтобы избежать ошибки при делении на ноль).

import java.util.Scanner;

public class Calculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("Введите первое число: ");
        double num1 = scanner.nextDouble();
        scanner.nextLine(); // consume newline

        System.out.print("Введите второе число: ");
        double num2 = scanner.nextDouble();
        scanner.nextLine(); // consume newline

        System.out.print("Введите операцию (+, -, *, /): ");
        String operation = scanner.nextLine();

        double result = 0;
        boolean error = false;

        switch (operation) {
            case "+":
                result = num1 + num2;
                break;
            case "-":
                result = num1 - num2;
                break;
            case "*":
                result = num1 * num2;
                break;
            case "/":
                if (num2 == 0) {
                    error = true;
                } else {
                    result = num1 / num2;
                }
                break;
            default:
                error = true;
        }

        if (error) {
            System.out.println("Ошибка");
        } else {
            System.out.println("Результат: " + result);
        }
        scanner.close();
    }
}

Условные конструкции if-else и switch-case – мощные инструменты для создания гибких и динамичных программ. Выбор между ними зависит от задачи. if-else подходит для сложных условий и гибкой логики, switch-case – для проверки одной переменной на множество значений. Правильное использование этих конструкций повышает читаемость и эффективность кода.

Что будем искать? Например,программа