logo
ZX-Review-1992-01-12

BETA BASIC

Продолжение. Начало см. стр. 3,47

16. DO

или DO WHILE <условие>

или DO UNTIL <условие>

Клавиша D (Ключевое слово WHILE находится на клавише J, а ключевое слово UNTIL на клавише K).

См. также LOOP, EXIT IF.

Конструкция DO LOOP имеет ряд преимуществ по сравнению с обычным способом организации циклов FOR NEXT стандартного БЕЙСИКа. Эти преимущества становятся еще более ощутимыми при использовании квалификаторов WHILE и UNTIL.

Без них DO и LOOP являются просто маркерами, отмечающими начало и конец цикла. После того, как программа встретит оператор LOOP, управление передается на оператор DO и т.д.

Пример:

10 DO

20 PRINT "HELLO"

30 LOOP

Эта программа будет печатать бесконечное число раз слово HELLO. Остановить ее можно будет только нажав BREAK.

Действие DO можно изменить с помощью квалификатора WHILE <условие>. Его действие таково:

Если условие стоящее после WHILE справедливо (имеет значение "истина"), то выполняются операторы стоящие после DO до тех пор, пока не встретится оператор LOOP, после чего управление вновь передается на DO и вновь проверяется справедливость условия и т.д. Если же условие "ложно", то вся часть программы, стоящая между DO и LOOP игнорируется и управление передается к оператору, стоящему за LOOP.

Таким образом, та часть программы, которая стоит между DO WHILE <условие> и LOOP выполняется раз за разом, пока <условие> справедливо.

DO UNTIL <условие> имеет прямо противоположное значение. Часть программы заключенная между DO и LOOP выполняется, пока условие "ложно" (иными словами до тех пор, пока условие не станет справедливым).

Пример:

10 LET total = 0

20 DO UNTIL total > 100

30 INPUT "Введите число ";x

40 LET total = total * x

50 PRINT total

60 LOOP

70 PRINT "Получили число больше ста"

В этом примере строку 20 можно было бы заменить такой:

20 DO WHILE total < = 100.

Пары DO LOOP могут вкладываться точно так же, как FOR NEXT. Например: