Типы циклов в языках программирования: for, foreach, while и do while

На этом уроке мы детально рассмотрим цикл while, его конструкцию, особенности и использование.

Список похожих конспектов

Оператор цикла с предусловием. Оператор цикла с постусловием Фарион Елена Александровна. учитель информатики, физики. . и математики. МОУ СОШ№96 Тема:. Оператор цикла с предусловием. Оператор … Оператор выбора Учитель информатики МОУ «СОШ» Республики Коми. . Канева Ольга Владимировна. Урок информатики в 8 классе. Пояснение от автора:. … Оператор выбора Case СМОЛЕНСКОЕ ОБЛАСТНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБЩЕОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ «ШКОЛА-ИНТЕРНАТ СРЕДНЕГО (ПОЛНОГО) ОБЩЕГО ОБРАЗОВАНИЯ С УГЛУБЛЕННЫМ … Оператор ветвления Тема урока: Оператор ветвления. Класс: 9 «Б». Цель урока:. Формирование навыка решения задач с помощью оператора ветвления. Задачи:. …

Операторы циклов

Break

while (true) // бесконечный цикл { std::cout << «Введите 0 чтобы выйти, или любое число чтобы продолжить: «; int val; std::cin >> val; // Выходим из цикла, если пользователь ввел 0 if (val == 0) break; }

Оператор break используется для досрочного выхода из цикла. Когда программа встречает break, цикл немедленно завершается и начинает выполняться код, следующий за циклом.

Continue

Оператор Continue даёт циклу команду выйти из текущей итерации и перейти к следующей.

Этот код выведет в консоль все нечетные числа из диапазона от 0 до 10:

for (int i = 0; i < 10; i++) { if (i % 2 == 0) { continue; } cout << i << «\n»; }Для начинающихЯзыки программирования Поделиться

Читайте также:  Как скачать и установить Яндекс браузер для Linux

Отличия while от циклов , for, foreach

Помимо while, есть еще несколько типов циклов. Они не сильно отличаются от while, но обладают своими интересными особенностями.

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

do { // тело цикла } while (условие);

Такой тип цикла применяется в тех случаях, когда как минимум одна итерация необходима до начала проверок. Он называется оператором постусловия. Пример такого цикла:

Scanner in = new Scanner(); String password; do { password = (); } while (!(«12345»));

Здесь мы используем , потому что значения переменной password еще не существует. Она инициализируется именно в цикле. При использовании обычного while ей сначала пришлось бы присвоить бессмысленное значение:

Scanner in = new Scanner(); String password = «»; while (!(«12345»)) { password = (); }

Изменение небольшое, но позволяет сделать код более понятным и логичным. Другой распространенный тип цикла – цикл for. В общем виде он выглядит так:

for (счетчик; условие; инкремент) // тело цикла }

Цикл прекращается тогда, когда условие возвращает false. Если оно изначально ложно, то тело цикла не выполнится ни разу. Пример цикла, где выводится квадрат каждого числа от 1 до 20:

for (int i = 1; i <= 20; i++) { (i * i); }

Ни одна из частей не является обязательной. Можно опустить вообще все три части внутри скобок – тогда цикл for станет бесконечным. Чтобы выйти из него, придется использовать инструкцию break:

for (;;) { if (() > 0.9) break; }

Цикл foreach является разновидностью цикла for. Ключевого слова foreach в Java нет – это просто удобное название для обозначения данного типа цикла. Пишется он так:

Читайте также:  Linux или android — что лучше в телевизоре?

for (переменная : коллекция) { // тело цикла }

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

Пример цикла foreach:

for (int num : numbers) { (num); }

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

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

Счетчик цикла while

Часто нам нужно будет, чтобы цикл выполнялся определенное количество раз. Для этого обычно используется переменная в виде счетчика цикла. Счетчик цикла – это целочисленная переменная, которая объявляется с единственной целью: считать, сколько раз выполнился цикл. В вышеприведенных примерах переменная count является счетчиком цикла.

Счетчикам цикла часто дают простые имена, такие как i, j или k. Однако в этих именах есть одна серьезная проблема. Если вы захотите узнать, где в вашей программе используется счетчик цикла и воспользуетесь функцией поиска символов i, j или k, то в результате получите половину своей программы, так как i, j или k используются во многих именах. Следовательно, лучше использовать iii, jjj или kkk в качестве имен для счетчиков. Они более уникальны, их значительно проще найти, и они выделяются в коде. А еще лучше использовать «реальные» имена для переменных, например, count или любое другое имя, которое предоставляет контекст использования этой переменной.

Читайте также:  GIMP 2.10.22 на русском языке для Windows 10

Также для счетчиков цикла лучше использовать тип ed int. Использование uned int может привести к неожиданным результатам. Например:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

#include <iostream>

int main()

{

uned int count = 10;

// Считаем от 10 к 0

while (count >= 0)

{

if (count == 0)

std::cout << “blastoff!”;

else

std::cout << count << ” “;

–count;

}

return 0;

}

Взгляните на эту программу еще раз и постарайтесь найти ошибку.

Оказывается, эта программа представляет собой бесконечный цикл. Она начинается с вывода 10 9 8 7 6 5 4 3 2 1 blastoff!, как и предполагалось, но затем «сходит с рельсов» и начинает отсчет с 4294967295. Почему? Потому что условие цикла count >= 0 никогда не будет ложным! Когда count = 0, то и условие 0 >= 0 имеет значение true, выводится blastoff, а затем выполняется декремент переменной count, происходит переполнение и значением переменной становится 4294967295. И так как условие 4294967295 >= 0 является истинным, то программа продолжает свое выполнение. А поскольку счетчик цикла является типа uned, то он никогда не сможет быть отрицательным, а так как он никогда не сможет быть отрицательным, то цикл никогда не завершится.

Правило: Всегда используйте тип ed int для счетчиков цикла.