В чем отличие циклов для и пока

Программа – это набор инструкций, написанных на языке программирования для выполнения определенной задачи. Это может быть логическая операция или математическая операция. Обычно операторы в программе
Ключевое отличие – для против пока цикл
Программа – это набор инструкций, написанных на языке программирования для выполнения определенной задачи. Это может быть логическая операция или математическая операция. Обычно операторы в программе выполняются один за другим. Иногда необходимо снова и снова выполнять набор операторов. Управляющие структуры используются для решения этой задачи. Два из них – это цикл for и while. Эти структуры помогают выполнять последовательность кода до тех пор, пока данное условие не станет истинным. Синтаксис цикла for состоит из инициализации, тестового выражения и выражения обновления. Синтаксис цикла while содержит тестовое выражение. В этой статье обсуждается разница между циклами for и while. В ключевое отличие между циклом for и while заключается в том, что цикл for может использоваться, если известно количество итераций, а цикл while может использоваться, когда количество итераций неизвестно.
1. Обзор и основные отличия
2. Что такое Loop
3. Что такое цикл пока
4. Сходства между циклами for и while
5. Параллельное сравнение – цикл for vs while в табличной форме
6. Резюме
Что такое петля?
Цикл for используется во многих языках программирования, таких как C, Java и т.д. Он используется для многократного выполнения набора операторов. Синтаксис цикла for следующий.
for (инициализация; тестовое выражение, обновление) {
// операторы внутри цикла for
}
Выражение инициализации выполняется только один раз. Затем оценивается тестовое выражение. Тестовое выражение может содержать переменные, значения, константы и операторы. Это логическое выражение. Если вычисленное выражение истинно, выполняется код внутри цикла for. После достижения конца цикла выражение обновления выполняется. Это может быть приращение или уменьшение. Снова проверяется тестовое выражение. Если вычисленное выражение истинно, инструкции внутри цикла for выполняются. В конце цикла выполняется выражение обновления. Этот процесс повторяется до тех пор, пока тестовое выражение не станет ложным. Когда тестовое выражение ложно, цикл for завершается, и управление передается следующему оператору после цикла for.
Вышеупомянутая программа предназначена для суммирования первых пяти чисел, которые равны 1, 2, 3, 4 и 5. В цикле for i равно 1. Оно меньше 5. Итак, сумма вычисляется. Первоначально сумма равна 0. Она добавляется к i, равному 1. Сумма присваивается переменной sum. Теперь сумма равна 1. Затем вычисляется выражение обновления. I увеличивается на единицу. Теперь i равно 2. Это меньше 5. Итак, сумма рассчитана. Предыдущее значение суммы равно 1, и оно добавляется к значению i, равному 2. Теперь сумма равна 3. Выражение обновления вычисляется, и i увеличивается на 1. Теперь оно равно 3. Этот процесс повторяется. Когда i становится 6, выражение становится ложным, потому что 6 не равно или меньше 5. Таким образом, цикл for завершается. Наконец, сумма всех пяти чисел выводится на экран.
Что такое цикл while?
Цикл while выполняет целевые операторы, пока выполняется заданное условие. Синтаксис цикла while следующий.
while (тестовое выражение) {
// операторы внутри цикла while
}
Цикл while содержит тестовое выражение. Это логическое выражение. Если вычисленное выражение истинно, то выполняются инструкции внутри цикла while. В конце этих операторов тестовое выражение вычисляется снова. Этот процесс повторяется до тех пор, пока тестовое выражение не станет ложным. Когда он становится ложным, цикл while завершается, и управление передается оператору после цикла while.
В соответствии с приведенной выше программой сумма инициализируется значением 0, а i инициализируется значением 1. В цикле while вычисляется значение i. Меньше 5. Итак, сумма рассчитана. Начальное значение суммы равно 0. Она добавляется к значению i 1. Теперь сумма равна 1. Затем значение i увеличивается на единицу. Теперь значение i равно 2. Оно меньше 5. Итак, сумма рассчитывается. Текущая сумма, равная 1, добавляется к значению i, равному 2. Теперь сумма равна 3.Снова значение i увеличивается. Теперь значение i равно 3. Этот процесс повторяется. Когда значение i становится равным 6, выражение становится ложным, поскольку оно не меньше или равно 5. Таким образом, цикл while завершается. Наконец, значение суммы выводится на экран. Если не было приращения, такого как i ++, то значение i остается неизменным, равным 1. Оно меньше 5. Условие всегда истинно. Так что это будет бесконечный цикл.
В чем сходство между циклом for и while?
- Оба цикла for и while являются структурами управления повторением в программировании.
- Выполнение цикла зависит от тестового выражения.
В чем разница между циклом for и while?
for vs while Loop | |
Цикл for – это структура управления повторением, которая позволяет программисту эффективно писать цикл, который должен выполняться определенное количество раз. | Цикл while – это структура управления повторением, которая выполняет целевые операторы, пока выполняется данное условие. |
использование | |
Цикл for можно использовать, когда известно количество итераций. | Цикл while можно использовать, когда количество итераций неизвестно. |
Инициализация | |
Инициализация происходит однократно в цикле for. | В цикле while, если оператор инициализации находится внутри цикла, инициализация выполняется каждый раз, когда цикл повторяется. |
Резюме -для против пока цикл
В программировании иногда требуется повторить набор операторов несколько раз. Для решения этой задачи существуют структуры контроля повторения. Два из них – это цикл for и while. Разница между циклами for и while заключается в том, что цикл for используется, когда известно количество итераций, а цикл while используется, когда количество итераций неизвестно.
Источник
Всем салют, друзья!
Продолжаем наш базовый курс по Python:
Вступайте в группу – vk.com/mrsisadm – там больше интересного!!!
Сегодня я расскажу вам о Python for & while loop, break & continue ement.
Циклы являются фундаментальной частью любой компьютерной программы. Python предоставляет нам отличные и простые в использовании конструкции циклов. Давайте посмотрим на следующие циклические структуры в Python.
Python while Loop
Цикл while используется для выполнения условия до тех пор, пока оно не будет оценено как истинное. Он имеет следующий синтаксис.
Синтаксис
while Condition:
ement 1
ement 2
ement n
Источник изображения
пример
a=5
while a<10:
(a)
a=a+1
(“Out of Loop”)
Выход
Мы инициализировали переменную ‘a’ значением 5. Затем мы берем конструкцию while и проверяем условие, если a меньше 10. Для первой итерации оно истинно и, следовательно, выполняются инструкции внутри цикла, а затем значение a увеличивается. При проверке после пятой итерации условие будет оценено как ложное, и управление выйдет из цикла. Следовательно, печать («Вне цикла») выполняется.
Обратите внимание, что a = a + 1 нельзя заменить на ++ в Python. Вы также можете использовать сторожевую переменную, чтобы избежать перехода цикла в бесконечный режим. Вам не нужно использовать фигурные скобки в Python для определения структуры цикла. Правильные отступы лучше всего подходят интерпретатору Python для определения объема цикла.
Python для цикла
Цикл for используется для повторения определенных строк кода в программе. Предположим, вы хотите напечатать числа до 10, вы можете сделать это, набрав 10 операторов печати или используя цикл for. Цикл for повторяет часть программы на основе последовательности.
цикл for повторяет тело цикла для каждого элемента в заданной последовательности. Как только все элементы выполнены, цикл завершается, и управление выходит из своего блока.
Синтаксис
for Counter in Variable:
ement 1
ement 2
ement n
Источник изображения
пример
a={1,2,3,4,5}
for i in a:
i
Выход
Здесь переменная «а» определена с 5 значениями. Цикл for здесь не проверяет никаких условий, как в случае цикла while. Он просто следует за последовательностью переменной. Мы также объявили переменную счетчика «i», которая выполняет итерацию по всему циклу. ‘in’ – это ключевое слово, используемое для указания интерпретатора для циклического перебора переменной ‘a’. Двоеточие необходимо, чтобы сообщить интерпретатору Python, что блок цикла for начинается со следующей строки.
Примечание. Отступы необходимы, поскольку они помогают интерпретатору идентифицировать тело цикла for.
Функция Python range ()
Существует также другой метод или функция, которые можно использовать с циклом for. Python предоставляет предопределенную библиотечную функцию с именем range (). Он автоматически создает последовательность по ее определению в программе Python. Это дает нам возможность выполнять операторы после некоторых заранее определенных итераций или пропусков. Вы можете понять это из следующего примера.
пример
for i in range(1,20,5):
i
Выход
Здесь range () используется для создания последовательности, начинающейся с 1 и заканчивающейся на 20. Но каждый раз значение переменной счетчика «i» будет увеличиваться на 5.
Заявление Python break и continue
Операторы break и continue могут использоваться в циклах while и for. Оператор break завершает выполнение цикла, и управление немедленно выходит из тела цикла. Оператор continue заставляет цикл пропускать оставшуюся часть своего тела и немедленно повторно проверять свое условие перед повторением.
Источник изображения
Источник изображения
пример
a=5;
while a<10:
(a)
a=a+1
if a>8:
break
(“Out of Loop”)
Выход
В приведенном выше примере демонстрируется использование оператора break в цикле while. Здесь значение a будет увеличиваться до 8, а затем будет выполнен оператор break, и управление выйдет из цикла.
Источник
Вчера мы узнали о понятии циклы в паскале в общих чертах, сегодня узнаем о каждом из циклов в паскале поподробней и увидим как они задаются. Будем разбирать цикл while с предусловием, цикл for с параметром и цикл repeat – until с постусловием.
1. Цикл с параметром в Паскале – FOR
Цикл FOR задаёт определённое условие по которому программа будет работать до его выполнения, допустим нужно нам 5 (или n) раз зациклить программу, то это легко сделать с помощью данного цикла. У цикла FOR есть характерная черта – счетчик который обычно обозначается буквой i или j.
Внешний вид цикла с параметром в паскале:
for i:= 1 to n do // присваиваем i сначала одному, потом двум, трем, …, n
После 1-го прохода переменной i присваиваем 1, после второго присваиваем 2 и так до тех пор, пока не дойдем до n. to – это до .. в порядке возрастания, также есть downto – до .. в порядке убывания.
Блок – схема цикла с параметром:
2. Цикл с предусловием в Паскале – WHILE
Оператор цикла с предусловием выполняет действия заранее неизвестное число раз. Выход из цикла осуществляется, если некоторое логическое выражение или его результат окажется ложным. Так как верность логического выражения проверяется в начале, тело цикла может не выполнится ни одного разу.
Структура цикла с предусловием: WHILE DO begin end;
– логическое выражение, истинность которого проверяется вначале выполнения циклического оператора;
– любые выполняемые операторы языка.
Порядок выполнения цикла:
Пока условие истинно выполняется тело цикла. Как только условие становится ложно выполнение цикла прекращается.
Блок – схема цикла с предусловием:
Примечание: в прямоугольных блоках показано любое действие, которое выполняется в цикле или после него (шаг цикла), в овалах – начало или конец всей программы или её части. Главную роль в данной блок – схеме играет её центральная часть.
Пример:
Задача: вычислить сумму ряда 1+1.5+2+2.5+3+3.5+ .. + 30
program example-while;
var sum:real; n:real; BEGIN sum:=0; n:=1; while n
3. Цикл с постусловием – Repeat – until.
Этот оператор аналогичен оператору цикла с предусловием, но отличается от него тем, что проверка условия производится после выполнения тела (действий) цикла. Это обеспечивает его выполнение хотя бы один раз в отличие от ранее разобранных циклов.
Обратите внимание на то, что данный оператор цикла предполагает наличие нескольких операторов в теле цикла, то есть можно выполнять несколько действий, поэтому служебные слова Begin и End не нужны.
Последовательность операторов, входящих в тело цикла выполняется один раз, после чего проверяется соблюдение условия, записанного следом за служебным словом Until. Если условие не соблюдается, цикл завершается. В противном случае – тело цикла повторяется ещё раз, после чего снова проверяется соблюдение условия.
Блок – схема цикла с постусловием:
Формат записи, структура цикла: REPEAT UNTIL ; Program test2; Var b:Real; Begin b:=100; Repeat b:=b/2; Until b
Выводы:
1.Цикл с параметром используется переменная, называемая параметром цикла или счётчиком. Перед выполнением цикла параметру (счётчику) устанавливается начальное значение. После выполнения шага цикла значение параметра увеличивается на единицу. Цикл продолжается до тех пор пока параметр не достигнет своего конечного значения, которое указывается после to (downto).
2. Цикл с предусловием выполняется до тех пор, пока условие выполнения не станет ложным, и продолжается, если условие истинно.
3. Цикл с постусловием выполняется до тех пор, пока условие не станет истинно, если условие ложно, цикл продолжается.
Предыдущий урок
Дата: 2012-01-06 19:31:43 Просмотров: 287670
Теги: Паскаль Pascal циклы уроки
Источник
Разбираемся, как сократить повторяющийся код в C++ и сэкономить время.
nbsp;4.0 Transitional//EN” “https://www.w3.org/TR/REC-html40/loose.dtd”>
Это шестая часть из серии статей «Глубокое погружение в C++». В прошлый раз мы узнали, как использовать функции и процедуры. Сейчас поговорим о циклах while, do-while и for.
Циклы – это разновидность условных конструкций. Они позволяют выполнять команды несколько раз, если определённое утверждение верно. Например, с помощью циклов можно пять раз вывести на экран какую-нибудь надпись или посчитать сумму всех чисел.
Евгений Кучерявый
Пишет о программировании, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.
Запись цикла while выглядит так:
Этот код выполняется следующим образом:
- Программа проверяет, верно ли утверждение.
- Выполняются инструкции в теле цикла.
- Программа возвращается к пункту 1.
То есть пока утверждение верно (i < 100), цикл будет повторять одни и те же действия. Цикл, который пять раз выводит сообщение «Hello, World!»:
int i = 0; while(i < 5) { std::cout << “Hello, World! n”; i++; }
Посмотрим на вывод:
Обратите внимание на переменную i – она играет роль счётчика, к которому в каждом шаге цикла прибавляется единица. Это нужно, чтобы инструкции выполнялись только определённое количество раз.
Один шаг цикла называется итерацией, а счётчик – итератором. Поэтому чаще всего для счётчика создаётся переменная i.
Важно! Следите за тем, чтобы выход из цикла был возможен, иначе он будет выполняться бесконечно.
Если внутри цикла складываются числа или что-то выводится, то нагрузка будет минимальной. Если же это какие-то ресурсозатратные вычисления, то выполнение такого цикла может заставить компьютер зависнуть.
Когда нам нужно вмешаться в работу цикла, мы используем операторы break и continue.
Оператор break прерывает выполнение цикла:
int sum = 0; int maxSum = 50; int i = 0; while(i < 100) { sum += i; i++; if(sum >= maxSum) { break; } } std::cout << “i = ” << i << “nsum = ” << sum << “n”;
Этот цикл должен посчитать сумму всех чисел от одного до ста. Но мы указали максимальное значение для переменной sum, поэтому цикл прервётся, как только sum станет больше maxSum.
Компилятор умеет отличать оператор break в конструкции switch от оператора break, который прерывает циклы. Поэтому можно спокойно писать вот такой код:
int action = 0; bool end = false; while(true) { std::cout << “Exit? n1 – Yesn0 – NonAction: “; std::cin >> action; switch(action) { case 1: std::cout << “Good bye!n”; end = true; break; case 0: std::cout << “Try again!n”; } if(end) { break; } }
Вот как это будет работать:
Важно! Оператор break внутри конструкции switch не может прервать цикл.
Иногда нам нужно пропустить одну итерацию и перейти к следующей. Для этого используем оператор continue.
int i = 0; while(i < 100) { i++; if(i % 3 == 0) { continue; } std::cout << ” ” << i; } std::cout << “n”;
Этот цикл выведет все числа от одного до ста, кроме тех, которые делятся на три без остатка.
Цикл do-while похож на while, но он сначала выполняет одну итерацию и только потом проверяет верность утверждения:
while(false) { std::cout << “Hello! n”; } do { std::cout << “Bye! n”; } while(false);
Вот результат:
Если для работы цикла нужен счётчик, то его запись можно сократить с помощью цикла for, записав логику в скобки:
Вот пример такого цикла:
int sum = 0; for(int i = 0; i < 200; i++) { sum += i; } std::cout << “sum = ” << sum << “n”;
В результате мы получим сумму всех чисел от 1 до 200:
Циклы, как и другие конструкции, можно размещать внутри других циклов. Вот, например, как вывести сетку с помощью for:
for(int i = 0; i < 10; i++) { for(int j = 0; j < 10; j++) { std::cout << ” + “; } std::cout << “n”; }
Получаем результат:
Важно! Операторы break и continue влияют на тот цикл, в котором они находятся, а не на родительский.
Циклы – одни из самых часто используемых конструкций в программировании. Они нужны при чтении данных из файлов, сортировке, отрисовке графики и так далее. Одно из самых полезных применений циклов связано с массивами, о работе с которыми будет отдельная статья.
Если вы хотите изучить самые востребованные особенности C++ и стать профессиональным программистом, то записывайтесь на наш курс по разработке на C++. Вы не только изучите теорию, но и выполните массу практических заданий, получите по ним обратную связь и сможете избежать тонны ошибок.
Вы пройдёте полный курс по С++ и прикладной курс по Unreal Engine 4. Вы научитесь работать с многопоточностью, использовать инструменты и средства разработки: Git, GCC, GDB. Вам будет проще найти работу программиста в геймдеве.
1409
Источник
Разберемся с операторами цикла, которые будем использовать в ардуино-скетчах. Каждый из циклов хорош по своему и имеет некоторые особенности.
логотип ардуино похож на знак бесконечности, от части и потому, что в каждом проекте используется бесконечный ЦИКЛ loop()
1. Цикл «while»
Цикл while имеет следующий синтаксис:
while (условие) {
// телом цикла
}
Операторы в теле цикла будут выполняться до тех пор, пока условие истинно.
Например, цикл ниже выводит i, пока i < 3:
int i = 0;
while (i < 3) { // выводит 0, затем 1, затем 2
Serial.ln( i );
i++;
}
Одно выполнение тела цикла называется итерацией. Цикл в примере выше совершает три итерации.
Если бы строка i++ отсутствовала в примере выше, то цикл бы повторялся (в теории) вечно. На практике, конечно, до тех пор, пока контроллер не будет выключен.
Любое выражение может быть условием цикла, а не только одно сравнение: условие while вычисляется и преобразуется в логическое значение.
int i = 2;
while ((i != 1) || (i ==5)) { // когда i будет равно 1 или 5, условие станет ложным, и цикл остановится
Serial.ln( i );
i–;
}
Важная особенность цикла:
While работает с глобальными переменными и для того что бы вновь начать выполнение действий внутри цикла нам необходимо привести переменные в начальное значение!
Функции на базе цикла:
1. void loop()
На данном цикле построен цикл loop() в Arduino, который фактически является while (true)
while(true){
Serial.ln(“Hello World”);
}
2. delay ()
Функция задержки delay () является циклом, который ничего не делает определенное время, которое пересчитывается компилятором в определенное количество тактов работы контроллера исходя из его скорости (тактовой частоты).
2. Цикл «do…while»
do..while разновидность цикла while, аналогичная подходу: “Сначала говори, а потом думай”. Для таких случаев проверку условия размещают под телом цикла:
do {
// тело цикла
} while (condition);
Цикл сначала выполнит тело, а затем проверит условие condition, и пока его значение равно true, он будет выполняться снова и снова.
Например:
int i = 0;
do {
Serial.ln( i );
i++;
} while (i < 3);
Такая форма синтаксиса оправдана, если вы хотите, чтобы тело цикла выполнилось хотя бы один раз, даже если условие окажется ложным. На практике чаще используется форма с предусловием: while(…) {…}.
3. Цикл «for»
Более сложный, но при этом самый распространённый цикл – цикл for. Тут ситуация похожа на подход: “сначала всё обдумай, а потом расскажи всё по пунктам”. отличие от предыдущих операторов в том, что все действия указываются сразу в скобках и не требуется дополнительных проверок, следить за сбросом переменной в начальное значение, не требуется создавать множество переменных с разными именами для каждого цикла, проверять, указали ли мы шаг изменения итератора. По этим причинам цикл и получил такое широкое распространение.
Выглядит он так:
for (начало; условие; шаг) {
// … тело цикла …
}
Давайте разберёмся, что означает каждая часть, на примере. Цикл ниже выполняет alert(i) для i от 0 до (но не включая) 3:
for (int i = 0; i < 3; i++) { // выведет 0, затем 1, затем 2
Serial.ln( i );
}
Рассмотрим конструкцию for подробней:
начало i = 0
- Выполняется один раз при входе в циклЗадаёт начальное значение созданной локальной переменной, которая удаляется при выходе из цикла for
условие i < 3
- Проверяется перед каждой итерацией цикла. Если оно вычислится в false, цикл остановится. Условия могут быть и составными и содержать множество логических И и ИЛИ
шаг ++i
- Выполняется после тела цикла на каждой итерации перед проверкой условия. возможны любые изменения шага ++i, –i, i += 2, и так далее
тело {Serial.ln( i ) }
- Выполняется снова и снова, пока условие вычисляется в true. Внутри тела цикла и проводятся все действия
В целом, алгоритм работы цикла выглядит следующим образом:
Выполнить *начало*
→ (Если *условие* == true → Выполнить *тело*, Выполнить *шаг*)
→ (Если *условие* == true → Выполнить *тело*, Выполнить *шаг*)
→ (Если *условие* == true → Выполнить *тело*, Выполнить *шаг*)
→ …
То есть, начало выполняется один раз, а затем каждая итерация заключается в проверке условия, после которой выполняется тело и шаг.
Вот в точности то, что происходит в нашем случае:
// for (int i = 0; i < 3; i++)Serial.ptintln(i);
// Выполнить начало
inti = 0;
// Если условие == true → Выполнить тело, Выполнить шаг
if (i < 3) { Serial.ptintln(i) ; i++ }
// Если условие == true → Выполнить тело, Выполнить шаг
if (i < 3) { Serial.ptintln(i) ; i++ }
// Если условие == true → Выполнить тело, Выполнить шаг
if (i < 3) { Serial.ptintln(i) ); i++ }
// …конец, выходим из цикла потому что теперь i == 3
Можно и не создавать локальную переменную, а использовать глобальную, как в стандартном примере servo -> sweep
Пременную в циклах принято называть i, как сокращение от слова iterration!
Встроенное объявление переменной
В примере переменная счётчика i была объявлена прямо в цикле. Это так называемое «встроенное» объявление переменной. Такие переменные существуют только внутри цикла.
for (int i = 0; i < 3; i++) {
Serial.ptintln(i) ; // 0, 1, 2
}
Serial.ptintln(i) ; // ошибка, нет такой переменной
Вместо объявления новой переменной мы можем использовать уже существующую:
int i = 0;
for (i = 0; i < 3; i++) { // используем существующую переменную
Serial.ptintln(i) ; // 0, 1, 2
}
Serial.ptintln(i) ; // 3, переменная доступна, т.к. была объявлена снаружи цикла
Пропуск частей «for»
Любая часть for может быть пропущена.
Для примера, мы можем пропустить начало если нам ничего не нужно делать перед стартом цикла.
Вот так:
int i = 0; // мы уже имеем объявленную i с присвоенным значением
for (; i < 3; i++) { // нет необходимости в “начале”
Serial.ptintln(i); // 0, 1, 2
}
Можно убрать и шаг:
inti = 0;
for (; i < 3;) {
Serial.ptintln(i++ );
}
Это сделает цикл аналогичным while (i < 3).
А можно и вообще убрать всё, получив бесконечный цикл:
for (;;) {
// будет выполняться вечно
}
При этом сами точки с запятой ; обязательно должны присутствовать, иначе будет ошибка синтаксиса.
4. Прерывание цикла: «break»
Обычно цикл завершается при вычислении условия в false.
Но в редких и исключительных случаях мы можем выйти из цикла в любой момент с помощью специальной директивы break.
Например, следующий код подсчитывает сумму вводимых чисел до тех пор, пока посетитель их вводит, а затем – выдаёт:
int sum = 0;
while (true) {
int value = analogRead(A0);
if (!value) break; //(*)
sum += value;
}
Serial.ptintln(sum);
Директива break в строке (*) полностью прекращает выполнение цикла и передаёт управление на строку за его телом, то есть на Serial.ptintln.
5. Переход к следующей итерации: continue
Директива continue – «облегчённая версия» break. При её выполнении цикл не прерывается, а переходит к следующей итерации (если условие все ещё равно true).
Её используют, если понятно, что на текущем повторе цикла делать больше нечего.
Например, цикл ниже использует continue, чтобы выводить только нечётные значения:
for (int i = 0; i < 10; i++) {
// если true, пропустить оставшуюся часть тела цикла
if (i % 2 == 0) continue;
Serial.ptintln(i); // 1, затем 3, 5, 7, 9
}
Для чётных значений i, директива continue прекращает выполнение тела цикла и передаёт управление на следующую итерацию for (со следующим числом). Таким образом Serial.ptintln(i) вызывается только для нечётных значений. Фигурные скобки {} допустимо не указывать для случаев, когда после оператора стоит только одно действие.
Директива continue позволяет избегать вложенности
Цикл, который обрабатывает только нечётные значения, мог бы выглядеть так:
for (int i = 0; i < 10; i++) {
if (i % 2) {
Serial.ptintln(i);
}
}
С технической точки зрения он полностью идентичен. Действительно, вместо continue можно просто завернуть действия в блок if.
Однако мы получили дополнительный уровень вложенности фигурных скобок. Если код внутри if более длинный, то это ухудшает читаемость, в отличие от варианта с continue.
ИТОГИ
Мы рассмотрели 3 вида циклов:
- while – Проверяет условие перед каждой итерацией.
- do..while – Проверяет условие после каждой итерации.
- for (;;) – Проверяет условие перед каждой итерацией, есть возможность задать дополнительные настройки.
Чтобы организовать бесконечный цикл, используют конструкцию while (true). При этом он, как и любой другой цикл, может быть прерван директивой break.
Если на данной итерации цикла делать больше ничего не надо, но полностью прекращать цикл не следует – используют директиву continue.
Источник