REPEAT

Оператор REPEAT

Оператор REPEAT, так само як і оператор WHILE, реалізує цикл:

[label:] REPEAT

statement_list UNTIL search_condition

END REPEAT [label]

Відмінною особливістю даного циклу є той факт, що умова циклу search_condition перевіряється не на початку, як у циклі WHILE, а в кінці оператора (ключове слово UNTIL). Таким чином, цикл виконує, принаймні, одну ітерацію незалежно від умови. Слід зазначити, що цикл REPEAT виконується, поки умова search_concition помилково.

Оператор REPEAT може бути використаний з необов'язковою міткою label, по якій можна здійснювати достроковий вихід з циклу за допомогою операторів LEAVE і ITERATE, розглянутих в попередньому розділі.

У прикладі представлена процедура binrand (), яка генерує і виводить випадкову бінарну послідовність з 20 символів. Для формування бінарної послідовності використовується цикл REPEAT.

Приклад:

CREATE PROCEDURE binrand ()

LANGUAGE SQL

BEGIN

DECLARE i INT DEFAULT 0;

DECLARE bin TINYTEXT DEFAULT '';

REPEAT

SET i = i + 1;

IF RAND() >0.5 THEN SET bin = CONCAT(bin, ' 1');

ELSE SET bin = CONCAT(bin, '0') ;

END IF;

UNTIL i >= 20

END REPEAT;

SELECT bin;

END //

CALL binrand()//

bin

1010100011110001111110