AstraRegul
Релиз 2024.08.31.00
×

Циклы

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

Цикл while

 
Цикл с предварительной проверкой. В отличие от for, цикл while удобно использовать для заранее неизвестного количества итераций.
 
while (condition)
{
  //statement
}
 
Сondition – выражение-условие продолжения цикла. Результат выражения должен быть приводим к типу bool. Тело цикла исполняется до тех пор, пока condition равен true. Внутри цикла могут использоваться операторы break (прерывание цикла) и continue (переход на следующую итерацию цикла).
 

Пример

 
//Цикл будет выполняться пока переменная Quality больше или равна 0
while(Quality >= 192)
{
  //statement
}
 

Цикл for

 
Цикл for обычно используется для выполнения определенного количества итераций.
 
for (init; condition; increment)
{
  //statement
}
 
init – действие до начала цикла. В большинстве случаев – объявление переменной (счетчика цикла) и присваивание ей начального значения. Объявлять переменную необязательно: присваивать начальное значение можно переменной, объявленной выше.
 
condition – условие продолжения цикла. В большинстве случаев – сравнение счетчика цикла с финальным значением.
 
increment – действие в конце каждой итерации цикла. В большинстве случаев – увеличение счетчика цикла.
 
Истинность условия проверяется перед каждой итерацией, в том числе перед первой. Если условие не выполняется (возвращает false) – цикл прекращается.
 
Внутри цикла можно использовать операторы break (выйти из цикла) и continue (перейти на следующую итерацию цикла). Любые части init, condition или increment в описании цикла можно опустить.
 

Пример

 
//Сумма всех чисел от 1 до 1000
sum: int4 = 0;
for (i: int4 = 1; i <= 1000; i += 1)
{
 sum += i;
}
 
Внутри цикла можно использовать операторы break (выйти из цикла) и continue (перейти на следующую итерацию цикла).
 
Любые части init, condition или increment в описании цикла можно опустить.
 
Если не указано условие выхода из цикла, оно принимается равным true. В этом случае для выхода из цикла необходимо использовать оператор break.
 

Пример

 
//Поиск первого числа после 1000, кратного 137
value: int4 = 1000;
for (;; value += 1)
if (value % 137 == 0)
break;
// после завершения работы цикла: value = 1096
//init – начальное значение присвоено до цикла.
//condition – условие выхода описано в теле цикла.