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

Условие, используемое при повторении, используется для определения того, сколько раз компьютер должен выполнять некоторые инструкции. В некоторых случаях мы точно знаем, сколько раз мы хотим, чтобы инструкция повторялась, и если это всего несколько раз, то нетрудно ввести одну и ту же инструкцию несколько раз. Хотя, когда мы хотим повторить выполнение инструкции 10 000 раз, это займет некоторое время, и это идеальная ситуация, когда мы будем использовать повторение. Указание нашей программе выполнить инструкции при условии, что она выполнит их 10 000 раз, что, очевидно, сэкономит нам кучу времени!

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

Хорошим примером программы может быть видеоигра. Игры — это очень сложные программы, но основной способ их работы — использование повторений. Мы запускаем нашу игру и выполняем те же инструкции: запрашиваем ввод данных пользователем, обновляем то, что происходит в игре, например, движение или стрельба персонажей и врагов, и, наконец, отображаем игру на экране. Мы можем играть в игры в течение нескольких минут или часов, и этот простой процесс повторяется бесконечно в течение этого времени, пока не произойдет что-то, что приведет к окончанию игры. Точное состояние, при котором происходит окончание игры, зависит от типа игры, но это может быть потеря всех ваших жизней, полное отсутствие здоровья или нехватка времени. В любом случае игра работает, повторяя набор инструкций до тех пор, пока условие окончания игры не станет истинным, что приведет к окончанию игры.

Что касается реализации повторения в наших программах, как и в случае с условными операторами, все языки программирования поддерживают повторение с использованием циклов. Существует несколько различных типов циклов, но наиболее распространенными являются циклы while и for. Цикл while выглядит следующим образом:

Пока (условие)

Выполнить инструкции

Очень похоже на оператор if, за исключением того, что мы заменяем слово if на while. Что происходит, так это то, что наша программа выполняет инструкции на основе условия. Важная вещь, которую следует помнить о цикле while, заключается в том, что инструкции не будут выполняться ни разу, если условие не выполнено. Циклы while лучше всего использовать, когда мы не знаем, сколько раз нам нужно повторять (проходить) через цикл, например:

Пока (gameOver не равно true)

Выполнить инструкции

В приведенном выше примере инструкции в цикле будут выполняться до тех пор, пока переменная gameOver не изменится на true, что может произойти в любой момент. С другой стороны, цикл for выглядит следующим образом:

Для (инициализация; условие; увеличение/уменьшение)

Выполнить инструкции

Цикл for кажется немного более сложным, чем цикл while, но его не так уж сложно понять. Циклы for делятся на три части: инициализация, условие и увеличение/уменьшение. В первой части мы инициализируем любые переменные, которые хотели бы использовать в цикле, обычно переменную, которая хранит целочисленное значение. Во-вторых, это наше условие, оно, очевидно, определяет, сколько раз мы итерируем цикл, повторяя инструкции. Как правило, это будет какое-то сравнение, например, x ‹ 10 или x равно 10. Заключительная часть связана с тем, как мы изменяем инициализированную переменную, добавляем или вычитаем какое-то значение, в зависимости от наших потребностей. Ниже приведен пример цикла for.

Для (целое число i = 0; i ‹ 10; i = i + 2)

Выполнить инструкции

В этом примере мы выполним наши инструкции 5 раз. Мы начинаем с инициализации нашей переменной i значением 0, затем мы проверяем, меньше ли значение 10, если да, то мы добавляем 2 к переменной, а затем выполняем инструкции. Это повторяется до тех пор, пока i не станет меньше 10, что произойдет после 5 итераций. Лучше всего использовать цикл for, когда мы точно знаем, сколько раз мы хотим, чтобы наши инструкции повторялись.

До сих пор мы рассматривали использование циклов как способ многократного выполнения компьютером инструкций, но какие типы инструкций мы хотим выполнять в цикле? Некоторые примеры включают: сложение или умножение чисел, инициализацию переменных или даже использование циклов для обхода структур данных.

Точная природа, в которой мы проходим через структуру данных, зависит от языка программирования и типа структуры данных, но общая идея заключается в том, что мы можем использовать цикл для прохождения через все значения данных, которые мы храним в структуре данных. Если бы у нас была структура данных, содержащая 100 различных целочисленных значений, мы могли бы использовать цикл для обхода структуры данных, то есть мы получили бы доступ к каждому значению, с которым мы могли бы что-то сделать, например изменить его значение или вывести его в экран.

В заключение, повторение еще больше расширяет возможности программ, которые мы пишем, позволяя многократно выполнять инструкции. Повторение инструкций избавляет нас от необходимости многократно вводить инструкции в тех случаях, когда мы знаем, сколько раз мы хотим, чтобы инструкция выполнялась. Кроме того, они позволяют создавать интерактивные приложения, такие как игры, позволяя выполнять инструкции несколько раз, неизвестные программисту. Циклы while и for являются распространенными реализациями повторения в языках программирования, каждая из которых адаптирована к конкретной ситуации, а циклы while лучше всего подходят для ситуаций, когда мы не знаем, сколько раз будут выполняться инструкции, и для циклов, зарезервированных для тех случаев, когда мы это делаем. знать эту информацию.

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