Язык программирования Форт



             

Глава 7. Операторы сравнения и ветвления - часть 11


Тогда после каждого WT на экране мы увидим 223 WT 16 WT 59 WT

Слово ABORT будет делать то же самое, но, кроме того, еще очищать стек. Использование слов ABORT и QUIT может быть полезным для подавления сообщения "ok".

Помимо этого, самостоятельное применение указанных слов может оказаться полезным при отладке программы. Предположим, что вам нужно проверить, не приводят ли к ошибке слова, которые вы ввели в конце какого-либо определения через двоеточие. Тогда можно сделать, чтобы эти слова игнорировались бы с помощью слова EXIT (разумеется, то же можно сделать, помещая эти слова в круглые скобки). Можно также применить QUIT, чтобы прервать исполнение программы каком-то месте и посмотреть содержимое стека или переменных. Слово ABORT в этом применении менее полезно, так как оно очищает стек, который нас, безусловно, интересует. Как уже было сказано, EXIT, QUIT и ABORT чаще всего используют в конструкции IF...THEN. Пусть нам нужно обеспечить возможность останова исполнения программы в определенном месте. Используйте для этого слово : ?ABORT " Нажмите S для прекращения программы" KEY 83 = IF " ok" CR ABORT THEN ;

Если ?ABORT вставить в какое-либо место в программе, пользователь будет иметь возможность остановить ее исполнение. A ."ok" CR введены в программу для того, чтобы напечатать сообщение "ok" и сделать возврат каретки, чего не делает слово ABORT. Очевидно вы можете заменить его словом QUIT, если хотите сохранить содержимое стека.

Слова ABORT и QUIT очень часто используются для обнаружения ошибок. Нам совершенно нежелательно разрешать деление на 0 (что может произойти из-за ошибки в вашей программе). Вот такое слово, которое можно вставить в программу непосредственно перед оператором деления / для того, чтобы выйти из вашей программы, если произойдет такая ошибка: : 0/? DUP 0= IF ." Ошибка деления на 0" DROP QUIT THEN ;

Заметим, что DROP можно убрать, если использовать ?DUP, и тогда получим : 0/? ?DUP 0= IF ." Ошибка деления на 0" QUIT THEN ;




Содержание  Назад  Вперед