Циклы
При написании алгоритма, нередко появляется необходимость выполнять одни и те же действия несколько раз подряд или перебирать элементы какого-то списка.
Вот некоторые примеры циклично повторяющихся действий:
- Ожидание подключения клиента. После подключения, нам нужно ожидать следующего клиента, т.е. мы снова повторяем действие "Ожидание подключения клиента".
- Отображения элемента списка. При разработке мессенджера, нам нужно отобразить на экране пользователя историю сообщений. Каждое сообщение отдельный элемент, и нам нужно отображать один за другим, т.е. выполнять одинаковые действия с каждым элементом списка.
- Выполнение алгоритма, до тех пор пока условие не нарушено. Например, допустим у нас имеется автополив растений. Мы раз за разом проверяем условие, если влажность почвы ниже 30%, то включить помпу. Как видите здесь тоже имеет место цикличность.
В языке программирования C++ есть много способов циклично повторять действия, однако на данном этами обучения мы узнаем только о трёх из всего множества.
Цикл while
while - "до тех пор пока" (для программистов переводится с англ. как предлог)
Цикл while используется для повторения блока кода, пока некоторое условие истинно.
В данном примере цикл выполняется до тех пор пока count < 5, так как count увеличивается на единицу каждую итерацию цикла, то цикл выполнится 5 раз
Пример (бесконечный цикл):
В этом примере цикл не завершиться, так как условие всегда истинно.
Пример:
А данный пример вообще не запустится, так условие false.
Цикл do-while
Есть люди которые сначала думают, а потом делают, а есть люди которые сначала делают, а потом думают.
Так вот, цикл while перед началом выполнения блока проверял условие. Но есть в java цикл, который сначала выполняет одну итерацию, а затем проверяет условие, такое цикл называется do-while.
Цикл do-while похож на цикл while, за исключением того, что он гарантирует, что блок кода будет выполнен хотя бы один раз, даже если условие ложно.
Пример:
Условие на 6 строке кода не позволит выполняться циклу, однако как минимум один раз это цикл выполнится и выведет на экран значение числа number.
Цикл do-while выполняет блок кода, затем проверяет условие. Если условие истинно, то цикл продолжается. Процесс повторяется до тех пор, пока условие станет ложным.
Для обеспечения работы циклов while и do-while мы создавали переменную, затем сравнивали, а в самом цикле меняли её значение. В Java сещуствует цикл, который позволяет держать все эти операции в одном месте.
Цикл for
Цикл for предоставляет удобный способ для выполнения итераций по заданному диапазону значений или перебора списка.
Как перебирать списки мы узнаем позже, а сейчас посмотрим на синтаксис этой конструкции.
Рассмотрим конструкцию for подробней:
начало | int i = 0 |
Выполняется один раз при входе в цикл |
условие | i < 3 |
Проверяется перед каждой итерацией цикла. Если оно вычислится в false, цикл остановится. |
тело | System.out.println(i); |
Выполняется снова и снова, пока условие вычисляется в true. |
шаг | i++ | Выполняется после тела цикла на каждой итерации перед проверкой условия. |
Так же, хочу обратить внимание на то, что переменная i объявлена в скобках цикла for. Такая переменная называется локальный и существует только пределах блока кода цикла. При попытке обратиться к ней за пределами цикла, мы получим ошибку.
Пример:
Прерывание цикла: «break»
Обычно цикл завершается при вычислении условия в false.
Но мы можем выйти из цикла в любой момент с помощью специальной директивы break.
Пример:
В данном примере цикл должен был бы выполнится 10 раз, однако когда переменная i станет равна 5 цикл встретит дериктиву break и завершится.
Переход к следующей итерации: «continue»
Если есть необходимость пропустить итерацию цикла, это можно реализовать используя директиву continue.
Пример:
В данном примере будут выведены числа от 0 до 9 кроме числа 5
Мы рассмотрели различные циклы в языке программирования c++.
Понимание работы этих циклов позволяет эффективно управлять повторяющимися операциями в программах.
Напоминаю, что от теории мало толку если не подкреплять её практикой, решайте задачи для закрипления материала. Решать задачи