В этой статье мы прольем свет на циклы.
Представьте, перед нами стоит задача вывести все элементы массива имен names
Казалось бы в чем тут может возникнуть проблема. Эту задачу мы можем выполнить двумя строчками кода:
Однако в чем может быть недостаток такого подхода?
Во-первых, что, если наш массив будет состоять не из двух элементов, а из ста или тысячи?
Во-вторых, как быть, если мы заранее не будем знать размер массива, с которым нам предстоит работать?
Для решения данных проблем, воспользуемся циклом for.
Cчетчик - это значение, которое показывает на какой по счету итерации цикла мы находимся.
Условие - показывает до какого момента будет выполняться цикл. Пока условие истинно (true) цикл будет продолжать выполнение.
Изменение счетчика - здесь мы можем изменять состояние счетчика.
Давайте напишем цикл for для нашего примера.
Результат выполнения будет идентичный.
Давайте разберем процесс работы поэтапно.
- Создание счетчика i и присваивание ему начального значения 0.
- Проверка условия. Значение счетчика в текущий момент (0) меньше, чем длинна массива (2)? Да.
- Выполняем тело цикла. В данный момент i равно 0.
- Изменяем счетчик i = i + 1. Таким образом i становится равным 1.
- Проверяем условие. 1 меньше чем 2? Да.
- Выполняем тело цикла. В этот момент i = 1
- Изменяем значение счетчика i = i + 1. Таким образом i становится равным 2.
- Проверяем условие. 2 меньше 2? Нет.
- Выходим из цикла
Цикл for не обязательно должен иметь сразу и счетчик, и условие, и изменение_счетчика. Допускается опускать некоторые части, но главное сохранять точки с запятой. Например:
Может возникнуть вопрос, а как тогда цикл, представленный выше, поймет, когда ему нужно завершиться? Существует специальный оператор break, который позволяет прервать цикл в любой момент. Давайте посмотрим, как мы можем переписать нашу программу с использованием этого оператора.
Чтобы упростить добавление единицы к счетчику на каждой итерации можно написать i++, что будет эквивалентно записи i = i + 1. Аналогично операция i--, которая эквивалентна i = i - 1;