18c0693f

УСЛОВНЫЙ ОПЕРАТОР


Запишем на Форте простой оператор принятия решения. Допустим, вы программируете механический упаковщик яиц в картонные коробки. Некоторое механическое устройство уже подсчитало число яиц, находящихся в ленте конвейера, и поместило это число в стек. В соответствии со следующим предложением на Форте: 12 = IF УПАКОВАТЬ THEN

осуществляется проверка: равно ли число в стеке 12, и ЕСЛИ (IF) да, ТО (THEN) выполняется слово УПАКОВАТЬ. Если число не равно 12, то выполняются слова, которые следуют за THEN.

Слово = выбирает два значения из стека и сравнивает их, чтобы проверить, равны ли они.

 

Если условие истинно (да), то будут выполнены слова, следующие за IF, если ложно — то слова, следующие за THEN.

Попытаемся выполнять этот оператор. Определим, например, следующее слово: : ?ПОЛНА ( число-яиц ) 12 - IF . " КОРОБКА ПОЛНА " THEN ; ok

11 ?ПОЛНА ok

12 ?ПОЛНА КОРОБКА ПОЛНА ок

Заметим, что оператор IF ... THEN должен содержаться только внутри определения (через двоеточие), так что вы не можете использовать его в режиме калькулятора.

Абстрагируйтесь от всех значений, которые заключены в словах IF (ЕСЛИ) и THEN (TO) в естественном языке В Форте они выражают то, что операторы, следующие за IF. выполняются лишь в случае, если условие истинно, а операторы, следующие за THEN, всегда. Это равносильно тому, что вы прикажете компьютеру после принятия решения (выполнять или не выполнять слова, следующие за IF, в зависимости от того, истинно условие или ложно) продолжить выполнение остальной части определения (следующей за THEN). В нашем примере после THEN находится единственное слово ;, которое означает конец определения.

Если вам удобно, сразу представляйте запись в постфиксной форме. Вместо традиционного применения выражения IF:

IF ( условие ) THEN ( действие ) ENDIF

мы имеем ( условие ) IF ( действие ) THEN

Помните, что каждому слову IF должно соответствовать свое THEN, причем в пределах одного и того же определения





Все публикации раздела