Jump to content

Условный цикл

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

Условный цикл может стать бесконечным , если ничто в теле цикла не может повлиять на результат условного оператора цикла . Однако бесконечные циклы иногда могут использоваться намеренно, часто с выходом из цикла, встроенным в реализацию цикла для каждого компьютерного языка , но многие из них имеют одну и ту же базовую структуру и/или концепцию. Цикл While и цикл For — два наиболее распространенных типа условных циклов в большинстве языков программирования .

Типы [ править ]

Следующие типы написаны на C++ , но применимы к нескольким языкам.

Пока цикл [ править ]

Проверяет условие на достоверность перед выполнением любого кода в цикле. [1] Если условие изначально ложно, код внутри цикла никогда не будет выполнен. В PL/I это DO WHILE... заявление.

while (condition) {
    // code
}

Цикл Do-While [ править ]

Проверяет условие на достоверность после выполнения кода в цикле. Следовательно, код внутри цикла всегда будет выполнен хотя бы один раз. PL/I реализует это как DO UNTIL... заявление.

do {
    // code
} while (condition);

Для цикла [ править ]

Упрощенный способ создания цикла while. [2]

for (initialization; condition; statement) {
    // code
}

Инициализация выполняется один раз перед циклом. Условие оценивает логическое выражение цикла. Оператор выполняется в конце каждого цикла.

Например, следующий цикл while:

int i = 0;

while (i < 10) {
    // code
    
    i += 1;
}

Можно записать так: цикл for:

for (int i = 0; i < 10; ++i) {
    // code
}

Цикл For-Each [ править ]

Цикл for-each по сути эквивалентен итератору . Это позволяет программе перебирать структуру данных без необходимости отслеживать индекс. Это особенно полезно в наборах, не имеющих индексов. Пример следующий:

std::vector<std::string> range = { "apple", "banana", "orange" };

for (auto item: range) {
    // code
}

Примеры [ править ]

Ниже приведен C. цикл while в стиле Он продолжает цикл, пока x не равен 3 , или, другими словами, цикл прекращается только тогда, когда x равен 3 . Однако, поскольку x инициализируется значением 0 и значение x никогда не изменяется в цикле, цикл никогда не завершится ( бесконечный цикл ).

int x = 0;

while (x != 3) {
    // code that doesn't change x
}

Цикл while ниже выполнит код в цикле 5 раз. x инициализируется значением 0, и каждый раз в цикле значение x увеличивается. Цикл while настроен на остановку, когда x становится равным 5.

int x = 0;

while (x != 5) {
    // code
    
    x += 1;
}

Частые ошибки [ править ]

Условные циклы часто являются источником ошибки Off by one .

Ссылки [ править ]

  1. ^ «цикл while — cppreference.com» . ru.cppreference.com . Проверено 7 ноября 2023 г.
  2. ^ «цикл for — cppreference.com» . ru.cppreference.com . Проверено 7 ноября 2023 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9fc82c8897190222c622f9978e4f4f4d__1699378200
URL1:https://arc.ask3.ru/arc/aa/9f/4d/9fc82c8897190222c622f9978e4f4f4d.html
Заголовок, (Title) документа по адресу, URL1:
Conditional loop - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)