1. Обзор
В самом базовом смысле программа-это список инструкций. Структуры управления-это программные блоки, которые могут изменить путь, по которому мы проходим через эти инструкции.
В этом уроке мы рассмотрим структуры управления в Java.
Существует три вида структур управления:
- Условные ветви, которые мы используем для выбора между двумя или более путями. В Java существует три типа: if/else/else if , тернарный оператор и переключатель .
- Циклы, которые используются для перебора нескольких значений/объектов и многократного запуска определенных блоков кода. Основными типами циклов в Java являются for , while и do while .
- Операторы ветвления, которые используются для изменения потока управления в циклах. В Java есть два типа: break и continue .
2. Если/Еще/Еще Если
Оператор 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"); }
Теоретически мы можем бесконечно цепляться или гнездиться если/иначе блоки, но это повредит удобочитаемости кода, и именно поэтому это не рекомендуется.
Мы рассмотрим альтернативные утверждения в остальной части этой статьи.
3. Тернарный оператор
Мы можем используйте тернарный оператор как сокращенное выражение, которое работает как если/иначе заявление.
Давайте еще раз рассмотрим наш пример 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. Переключатель
Если у нас есть несколько вариантов на выбор, мы можем использовать переключатель заявление.
Давайте еще раз рассмотрим простой пример:
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 могут быть трудночитаемыми. В качестве одного из возможных обходных путей мы можем использовать switch, , как показано выше.
А также имейте в виду, что у коммутатора есть область действия и ограничения на ввод, которые мы должны помнить, прежде чем использовать его.
5. Петли
Мы используем петли когда нам нужно повторить один и тот же код несколько раз подряд.
Давайте рассмотрим краткий пример сопоставимых для и в то время как типов циклов:
for (int i = 1; i <= 50; i++) { methodToRepeat(); } int whileCounter = 1; while (whileCounter <= 50) { methodToRepeat(); whileCounter++; }
Оба приведенных выше блока кода вызовут метод Для Повторения 50 раз.
6. Перерыв
Нам нужно использовать перерыв чтобы рано выйти из цикла.
Давайте рассмотрим краткий пример:
Listnames = getNameList(); String name = "John Doe"; int index = 0; for ( ; index < names.length; index++) { if (names[index].equals(name)) { break; } }
Здесь мы ищем имя в списке имен, и мы хотим прекратить поиски, как только найдем его.
Обычно цикл завершается, но мы использовали break здесь, чтобы закоротить его и выйти раньше.
7. Продолжайте
Проще говоря, продолжить означает пропустить остальную часть цикла, в котором мы находимся:
Listnames = getNameList(); String name = "John Doe"; String list = ""; for (int i = 0; i < names.length; i++) { if (names[i].equals(name)) { continue; } list += names[i]; }
Здесь мы пропускаем добавление дубликатов имен в список.
Как мы уже видели здесь, перерыв и продолжить может быть удобно при итерации, так как они часто могут быть переписаны с помощью вернуть утверждения или другая логика.
8. Заключение
В этой краткой статье мы узнали, что такое структуры управления и как их использовать для управления потоком в наших программах Java.
Весь код, представленный в этой статье, доступен на GitHub .