Если в стеке находится нуль, слово ?DUP ничего не выполняет, следовательно, применяя его, мы избавляемся от заботы очищения стека от оставленного нуля. ?DUP не дает никакого выигрыша, если перед оператором IP стоит оператор сравнения. Но если перед IF следовала арифметическая операция и при ненулевом значении результата должна быть выполнена другая программа, тогда использование ?DUP экономит время - особенно в цикле. Применение оператора MOD совместно с IF весьма полезно в циклах DO-LOOP, когда нужно что-то выполнить с определенным интервалом. Например, : 7MULTIPLES? 1+ 0 SWAP 1 DO I 7 MOD 0= IF 1+ THEN LOOP . ." раз число 7 содержится в данном числе " CR ; при исполнении 38 7MULTIPLES? выведет в результате 5 раз число 7 содержится в данном числе
Хотя данный пример тривиален, в нем показан прием, который пригодится для составления более сложных программ, чем определение кратности одного числа другому.
Некоторые замечания о структурном программировании
Переход на исполнение определенных операций (т.е. подпрограмм) является одним из наиболее важных механизмов языка программирования. В таких языках, как Бейсик, допускается переход в любое место программы, куда вы хотите, не обязательно к четко оформленной задаче или подпрограмме. И возврат не обязательно должен происходить в точку, из которой произошел переход. Оператор Бейсика GOTO nnn где nnn - номер строки, позволяет делать переход в программе произвольно, с возвратом или без возврата в исходную точку, как вам кажется удобнее.