«1. Обзор

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

В этом руководстве мы рассмотрим управляющие структуры в Java.

Существует три вида управляющих структур:

    Условные переходы, которые мы используем для выбора между двумя или более путями. В Java есть три типа: if/else/else if, тернарный оператор и переключатель. Циклы, которые используются для перебора нескольких значений/объектов и повторного запуска определенных блоков кода. Основными типами циклов в Java являются for, while и do while. Операторы ветвления, которые используются для изменения потока управления в циклах. В Java есть два типа: break и continue.

2. If/Else/Else If

Оператор if/else является самой простой управляющей структурой, но его также можно считать самой основой принятия решений в программировании.

Хотя if можно использовать сам по себе, наиболее распространенным сценарием использования является выбор между двумя путями с помощью if/else:

if (count > 2) {
    System.out.println("Count is higher than 2");
} else {
    System.out.println("Count is lower or equal than 2");
}

Теоретически мы можем бесконечно сцеплять или вкладывать блоки if/else, но это повредит коду. удобочитаемость, и поэтому это не рекомендуется.

Мы рассмотрим альтернативные операторы в оставшейся части этой статьи.

3. Тернарный оператор

Мы можем использовать тернарный оператор как сокращенное выражение, которое работает как оператор if/else.

Давайте еще раз посмотрим на наш пример if/else:

if (count > 2) {
    System.out.println("Count is higher than 2");
} else {
    System.out.println("Count is lower or equal than 2");
}

Мы можем реорганизовать это с помощью тернарного кода следующим образом:

System.out.println(count > 2 ? "Count is higher than 2" : "Count is lower or equal than 2");

Хотя тернарный код может быть отличным способом сделать наш код более читаемым, не всегда хорошая замена if/else.

4. Switch

Если у нас есть выбор из нескольких случаев, мы можем использовать оператор switch.

Давайте снова рассмотрим простой пример:

int count = 3;
switch (count) {
case 0:
    System.out.println("Count is equal to 0");
    break;
case 1:
    System.out.println("Count is equal to 1");
    break;
default:
    System.out.println("Count is either negative, or higher than 1");
    break;
}

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

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

5. Циклы

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

Давайте рассмотрим краткий пример сопоставимых циклов for и while:

for (int i = 1; i <= 50; i++) {
    methodToRepeat();
}

int whileCounter = 1;
while (whileCounter <= 50) {
    methodToRepeat();
    whileCounter++;
}

Оба вышеприведенных блока кода вызовут methodToRepeat 50 раз.

6. Break

Нам нужно использовать break для досрочного выхода из цикла.

Давайте рассмотрим быстрый пример:

List<String> names = getNameList();
String name = "John Doe";
int index = 0;
for ( ; index < names.length; index++) {
    if (names[index].equals(name)) {
        break;
    }
}

Здесь мы ищем имя в списке имен и хотим прекратить поиск, как только найдем его.

Цикл обычно завершается, но здесь мы использовали break, чтобы замкнуть его и выйти раньше.

7. Продолжить

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

List<String> names = getNameList();
String name = "John Doe";
String list = "";
for (int i = 0; i < names.length; i++) { 
    if (names[i].equals(name)) {
        continue;
    }
    list += names[i];
}

Здесь мы пропускаем добавление повторяющихся имен в список.

Как мы видели здесь, операторы break и continue могут быть удобны при итерации, хотя их часто можно переписать с помощью операторов возврата или другой логики.

8. Заключение

В этой быстрой статье мы узнали, что такое управляющие структуры и как их использовать для управления потоком данных в наших Java-программах.

Весь код, представленный в этой статье, доступен на GitHub.