Для начала давайте разберёмся, что такое цикл в программировании, и зачем он нужен. Цикл в программировании — это управляющая конструкция, которая заставляет какой-то блок кода выполняться несколько раз.
Блок кода, который нужно повторять, называется телом цикла. Там может быть практически любой код, необходимый разработчику. Сама управляющая конструкция описывает, как долго повторять действия: можно задать четкое количество повторений или заставить цикл выполняться до достижения какого-то условия.
Сколько раз пройдет цикл, зависит от его условий и задачи. Бывают циклы, которые не могут выполниться ни разу, а бывают те, что проходят сотни итераций, вплоть до бесконечности. Иногда это ошибка, иногда — ожидаемое поведение.
И так, давайте начнем с цикла for. Для того чтобы его записать, необходимо прописать for(), где в круглых скобках указать условие.
В качестве действия, для примера мы возьмём переменную int, дадим ей имя i, и присвоим ей значение = 0. Мы не будем эту переменную объявлять отдельно, хотя могли бы, а мы ее пропишем прямо в условии цикла for. Действие объявлено, следом мы пропишем, до каких пор будет выполняться цикл, пусть это будет i <= 10; а в третьем действии мы прописываем каким образом наша переменная будет изменяться, ибо если этого не сделать, то цикл будет бесконечным. Мы пропишем, чтобы наша переменная увеличивалась на единицу i++.
Понятно, что значение переменной может быть не обязательно 0, а любым другим числом. До каких пор будет выполняться цикл тоже можно указывать <, <=, >, >= и так далее. И каким образом будет изменяться переменная тоже можно менять, увеличить на единицу ++, уменьшить на единицу --, уменьшать на -=, увеличивать на +=, делить /= и так далее.
То есть, если, например, прописать вот так, и запустить программу, то в результате мы получим цикл 100, 50 и 25.
Цикл while() от цикла for() отличается лишь тем, что у них разный формат записи условий. На примере показываю те же данные, что и в цикле for, но смотрите как изменилась запись.
Другими словами можно сказать, что пока условие цикла в круглых скобках = true, цикл выполняется, и как только он становится false, код заканчивает свою работу, цикл прекращается.
Цикл do while такой же цикл как и while, но отличается как раз тем, о чём я писал выше. Если в цикле while в круглых скобках условие = true, то цикл выполняется, и останавливается тогда когда условие = false.
В цикле do while, в do код выполнится в любом случае, а в while, если условие false, то код выполняться не будет, если true, то будет.
Как мы видим на примере выше, я переменной int присвоил значение 100, а в качестве действия в do попросил переменную умножить еще на 100. Таким образом, при запуске программы мы увидим только Element 100, а умножения не произойдет, потому что в while прописано условие, которое будет равно false.
Однако, если мы код запишем вот таким образом, то есть переменной int присвоим значение = 0, и do увеличит ее на 1, то while будет повторять код до тех пор, пока переменная не станет больше 10. Остановится на 9. Если бы знак был не < а <= то вывод остановился бы на 10.
Давайте рассмотрим другой пример.
Я прошу пользователя ввести число 5 в переменную int с именем value. В условии цикла while я прописал проверку на неравенство. Таким образом, если пользователь введет число 5, которое будет равно 5, тогда в условии будет ложь, код не сработает, и на экран будет выведен следующий код, в котором будет написано "Вы ввели число 5". Однако, если пользователь введет любое число, которое не равно 5, то в условии while будет истина, и сработает код который прописан в этом цикле.
Проблема в том, что 6-7 и 9-10 строки дублируют программный код. Чтобы решить эту проблему потребуется цикл do while.
Теперь, если пользователь вводит число не равное 5, то цикл while не сработает, и вернет код в цикле do. Так будет происходить до тех пор, пока пользователь не введет число 5.
Теперь давайте поговорим об операторах. В данном случае мы поговорим об операторах break и continue, которые встречаются в циклах. Оператор break останавливает цикл, тогда как оператор continue пропускает итерацию.
В данном примере я создал цикл for, в котором объявил переменную int с именем i и присвоил ей значение 5. Цикл будет повторяться, прибавляя 2 к переменной int до тех пор, пока не будет достигнута цифра 25. Но я прервал цикл оператором if (i >= 17) break; то есть, цикл прекратится сразу, как только цикл будет достигнут числа 17.
А в этом примере мы пропустили итерацию кратную числу 3, прописав условие i % 3 == 0, что означает если остаток при делении на число 3 = 0, то оно кратно 3, ну и остальные числа, которые делятся на 3 без остатка, выводиться не будут.
Операторы continue и break можно использовать в любом из циклов, которые были описаны в этой статье.