Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в СУБД HyTech.doc
Скачиваний:
12
Добавлен:
01.03.2025
Размер:
2.67 Mб
Скачать

Оператор цикла с предусловием в формате while

В программе часто требуется организовать циклические повторения одних и тех же выражений. Для организации циклических вычислений используется оператор цикла while, оператор do и оператор for. В операторе while процесс циклического выполнения вычислений организуется следующим образом. Перед тем как очередной (в том числе и первый) раз передать управление оператору внутри цикла, вычисляется значение условия цикла. Если вычисленное значение отлично от нуля, то выполняется оператор внутри цикла. Если вычисленное значение равно нулю, то выполнение цикла прекращается и управление передается оператору, расположенному непосредственно после оператора цикла.

Формат:

while ( Условие ) Оператор_цикла;

Аргументы:

Аргумент

Значение

Условие

Логическое выражение, значение которого проверяется перед очередной итерацией.

Оператор_цикла

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

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

Цикл while завершается в следующих случаях:

  • Значение условия в заголовке цикла обратилось в нуль;

  • В теле цикла встретился оператор break;

  • В теле цикла встретился оператор return;

  • В теле цикла встретился оператор quit. 

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

Пример. Найти сумму чисел от 1 до n.

var @summa = 0, @num = 1; var @n = 5; while(@num <= @n) {   @summa = @summa + @num;   @num = @num + 1; } select @summa as SUMMA from TABLES;

Оператор цикла с предусловием в формате for

Оператор for в некоторых случаях более нагляден для организации цикла. По формату и способам использования он аналогичен оператору for в языке C. Процесс циклического выполнения вычислений организуется следующим образом: до выполнения первой итерации цикла выполняется выражение, указанное в качестве аргумента «Начальное выражение» (см. формат вызова). Перед тем как очередной (в том числе и первый) раз передать управление оператору внутри цикла, вычисляется значение условия цикла (аргумент «Условие» в вызове). Если вычисленное значение отлично от нуля, то выполняется оператор внутри цикла. Если вычисленное значение равно нулю, то выполнение цикла прекращается и управление передается оператору, расположенному непосредственно после оператора цикла. Перед переходом к следующей итерации цикла выполняется выражение, заданное в аргументе «Конечное выражение» (см. формат вызова).

Формат:

for ( Начальное_выражение; Условие; Конечное_выражение )   Оператор_цикла;

Аргументы:

Аргумент

Значение

Начальное_выражение

Выражение, которое будет выполнено до 1-ой итерации, до проверки логического выражения, заданного аргументом Условие.

Условие

Логическое выражение, значение которого проверяется перед очередной итерацией.

Конечное_выражение

Выражение, которое будет выполнено после оператора цикла для каждой итерации.

Оператор_цикла

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

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

Цикл for завершается в следующих случаях:

  • Значение условия в заголовке цикла обратилось в нуль;

  • В теле цикла встретился оператор break;

  • В теле цикла встретился оператор return;

  • В теле цикла встретился оператор quit.

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

Пример. Найти сумму чисел от 1 до 10.

var @summa = 0, @num = 1; for(@num = 1; @num <= 10; @num = @num + 1) {   @summa = @summa + @num; } select @summa as SUMMA from TABLES;