В операторе do (операторе цикла с постусловием) процесс циклического выполнения вычислений организуется следующим образом. Выполняется оператор внутри цикла, затем вычисляется значение условия цикла. Если вычисленное значение отлично от нуля, то выполнение цикла продолжается. Если вычисленное значение равно нулю, то выполнение цикла прекращается и управление передается оператору, расположенному непосредственно после оператора цикла. В отличие от оператора while, в операторе do цикл выполняется хотя бы один раз.
Формат:
do Оператор_цикла while ( Условие );
Аргументы:
| Аргумент
| Значение
|
| Условие
| Логическое выражение, значение которого проверяется после очередной итерации.
|
| Оператор_цикла
| Оператор, который будет выполняться при соответствующем значении условия цикла.
|
В тех случаях, когда действия, подлежащие выполнению в цикле, не могут быть записаны одним оператором, удобно применять составной оператор. Составной оператор – один или несколько операторов, заключенных в фигурные скобки.
Цикл do завершается в следующих случаях:
· Значение условного выражения обратилось в нуль;
· В теле цикла встретился оператор break;
· В теле цикла встретился оператор return;
· В теле цикла встретился оператор quit.
В первых двух случаях управление передается на оператор, располагающийся непосредственно за циклом. В третьем случае происходит возврат из функции. В последнем случае завершается выполнение всей программы.
Примеры:
var @sum01 = 0, @num = 1, @N = 3;
do
{
@sum01 = @sum01 + @num;
@num = @num + 1;
}
while(@num < @N);
var @sum02 = 0;
@num = 1;
do
{
@sum02 = @sum02 + @num;
@num = @num + 1;
if (@sum02 > 4)
break;
}
while(1);
select @sum01 as SUM01, @sum02 as SUM02 from TABLES;