Разница между циклами for и while

Автор: Laura McKinney
Дата создания: 2 Апрель 2021
Дата обновления: 10 Май 2024
Anonim
Циклы for и while в Си: сходство и различие
Видео: Циклы for и while в Си: сходство и различие

Содержание


В C ++ и Java операторы итерации for loop, while loop и do-while loop позволяют многократно выполнять набор инструкций, пока условие не станет истинным и завершится, как только условие станет ложным. Условия в операторах итерации могут быть предопределены как для цикла for, так и с открытым концом, как в цикле while.

Существует несколько вариаций цикла for в C ++, которые подразумевают увеличение его применимости, мощности и гибкости. Например, цикл for позволяет нам использовать более одной переменной внутри цикла, чтобы управлять ею, и использовать функцию сходства с циклом «for». И наоборот, с циклом while мы не можем использовать много вариантов, которые должны использоваться со стандартным синтаксисом.

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

  1. Сравнительная таблица
  2. Определение
  3. Ключевые отличия
  4. Заключение

Сравнительная таблица

Основа для сравненияза пока
декларацияfor (инициализация; условие; итерация) {
// тело цикла for
}
while (условие) {
заявления; // тело цикла
}
ФорматИнициализация, проверка условий, оператор итерации записываются в верхней части цикла.Только инициализация и проверка состояния выполняются в верхней части цикла.
использованиеЦикл for используется только тогда, когда мы уже знаем количество итераций.Цикл while используется только тогда, когда число итераций точно не известно.
УсловиеЕсли условие не задано в цикле for, цикл повторяется бесконечное число раз.Если условие не установлено в цикле while, это приводит к ошибке компиляции.
инициализацияВ цикле for инициализация, однажды выполненная, никогда не повторяется.В цикле while, если инициализация выполняется во время проверки условий, инициализация выполняется каждый раз, когда цикл повторяется.
Итерационное утверждениеОператор цикла for for написан сверху, следовательно, выполняется только после выполнения всех операторов цикла.В цикле while оператор итерации может быть записан в любом месте цикла.


Определение цикла

В Java есть две формы за петли. Первая форма - это «традиционная» форма, а вторая - форма «для каждого».

Синтаксис

Общая форма традиционной для оператора цикла.

for (инициализация; условие; итерация) {// тело цикла for}

  • инициализация - Инициализация управляющей переменной цикла цикла for выполняется только один раз, во время первой итерации цикла. Здесь управляющая переменная цикла инициализируется, иногда, если переменная цикла больше не используется нигде в программе и используется только как управляющая переменная цикла, тогда она объявляется и инициализируется в цикле «for».
  • Условие - Условие цикла «for» выполняется каждый раз, когда цикл повторяется.
  • Инкремент и итерация- Оператор итерации - это выражение, которое увеличивает или уменьшает переменную, контролирующую цикл.

Всякий раз, когда цикл выполняется, его условие инициализации выполняется первым; тогда условие проверено. Если условие выполнено, выполняется тело цикла, затем выполняется оператор итерации. Затем снова проверяется условие, чтобы узнать, будет ли цикл повторяться дальше или завершится.


В Java оператор инициализации и оператор итерации могут включать более одного оператора. Каждый оператор отделяется другим запятой, в Java запятая - это разделитель, тогда как в C ++ «запятая» - это оператор, который можно использовать в любом допустимом выражении.

цикл for-each и его синтаксис

Форма «для каждого» - это расширенный цикл for. Общая форма цикла for-each следующая.

для (типа iter_variable: collection) оператор-блок

Здесь «тип» указывает тип переменной итерации, за которой следует переменная итерации. Переменная итерации получит элемент из переменной коллекции. Тип должен совпадать с типом элементов, хранящихся в переменной коллекции. Форма for для каждого цикла for автоматизирует итерацию цикла от начала до конца, обращаясь к значениям в последовательном порядке.

пример

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

public class Main {public static void main (String args) {int array = {10, 20, 30, 40, 50, 60}; int add = 0; for (int c: array) {System.out.ln ("значение в c" + c); добавить = добавить + с; } System.out.ln («добавление элементов массива +»); }} // выходное значение в c 10, значение в c 20, значение в c 30, значение в c 40, значение в c 50, добавление элементов массива c 60 равно 210

Здесь «c» - итерационная переменная; он получает значения из массива, по одному, от самого низкого индекса до самого высокого индекса в массиве. Здесь цикл повторяется до тех пор, пока не будут проверены все элементы массива. Можно прервать цикл между ними, используя «break». Однако изменение переменной итерации не влияет на массив, поскольку это только переменная только для чтения.

Определение цикла while

пока Цикл - это самый фундаментальный цикл, доступный в C ++ и Java. Работа цикла while одинакова как в C ++, так и в Java.

Синтаксис

Объявление цикла while выглядит следующим образом

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

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

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

пример

Давайте обсудим работу цикла while. В приведенном ниже примере код будет от 1 до 10.

// пример на Java. открытый класс Main {открытый статический void main (строковые аргументы) {int n = 0; while (n <10) {n ++; System.out.ln ("n =" + n); }}} // вывод n = 1 n = 2 n = 3 n = 4 n = 5 n = 6 n = 7 n = 8 n = 9 n = 10

Здесь начальное значение n равно 0, что делает условие в цикле while истинным. Затем элемент управления входит в тело цикла while, и значение 'n' увеличивается в соответствии с первым оператором в теле цикла while. Значение 'n' редактируется, затем управление возвращается к условию в цикле while, теперь значение 'n' равно 1, что снова удовлетворяет условию, и тело цикла выполняется снова. Это продолжается до тех пор, пока условие не станет истинным, как только условие станет ложным, цикл прерывается.

Подобно циклу «for», цикл «while» также может инициализировать управляющую переменную в верхней части цикла, то есть во время проверки состояния.

// например, while ((ch = getchar ())! = A) {System.out.ln («Входной алфавит» + ch); }

Здесь управляющая переменная "ch" инициализируется, и состояние цикла проверяется в верхней части цикла.

Примечание:

Может ли это быть цикл for или цикл while, если в теле цикла есть только один оператор, в этом условии фигурные скобки не требуются.

  1. В за цикл, инициализация, проверка состояния и увеличение или уменьшение переменной итерации выполняется явно только в синтаксисе цикла. В отличие от пока Цикл мы можем только инициализировать и проверить условие в синтаксисе цикла.
  2. Когда мы знаем о количестве итераций, которое должно произойти при выполнении цикла, тогда мы используем за петля. С другой стороны, если мы не знаем количество итераций, которое должно произойти в цикле, тогда мы используем пока петля.
  3. Если вы не можете поместить оператор условия в за цикл, это приведет к бесконечной итерации цикла. Напротив, если вы не можете поместить оператор условия в пока Цикл это приведет к ошибке компиляции.
  4. Операция инициализации в синтаксисе за цикл выполняется только один раз в начале цикла. И наоборот, если пока цикл содержит оператор инициализации в своем синтаксисе, тогда оператор инициализации в цикле while будет выполняться каждый раз, когда цикл повторяется.
  5. Оператор итерации в за цикл будет выполняться после того, как тело для цикла будет выполнено. Напротив, оператор итерации может быть записан в любом месте тела пока цикл, поэтому могут быть некоторые операторы, которые выполняются после выполнения оператора итерации в теле цикла while.

Заключение:

Цикл for и цикл while оба являются оператором итерации, но оба имеют свою особенность. Цикл for имеет все свои объявления (инициализация, условие, итерация) в верхней части тела цикла. И наоборот, в цикле while только инициализация и условие находятся в верхней части тела цикла, и итерация может быть записана в любом месте тела цикла.