3.10. Větvení programu

Pro podmíněné větvení můžeme použít konstrukci IF ... THEN případně její rozšířenou variantu IF ... ELSE ... THEN

IF (true part) THEN
IF (true part) ELSE (false part) THEN

Slovo IF se rozhoduje podle hodnoty na vrcholu zásobníku zdali se vykoná část kódu za ním uvedená, případně která část kódu. Přesněji pokud je na vrcholu zásobníku hodnota nenulová, je tato považována za logickou 1 tedy true, a je vykonán kód který následuja za IF až po THEN, nebo ELSE. Je-li na zásobníku 0 je považována za logickou 0 tedy false. V tomto případě se buďto nevykoná kód žádný, varianta IF...THEN, nebo se vykoná kód následující za slovem ELSE, varianta IF...ELSE...THEN. Příkaz IF je definován jen v módu překladu a můžeme jej tudíž použít jen v těle definovaného slova. Ukažme si tedy první příklad

# $Id: TUT.if.ses,v 1.1 2003/12/28 18:21:58 radek Exp $
Gforth 0.6.2, Copyright (C) 1995-2003 Free Software Foundation, Inc.
Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license'
: iftest  IF ." TRUE" THEN ;  ok
0 iftest  ok
1 iftest TRUE ok
-1 iftest TRUE ok
BYE 

Jak je vidět TRUE se vytiskne jen pro hodnoty 1 a -1, a vytiskla by se i pro všechny další nenulové hodnoty. Při zadání 0 se neudělá nic. Rozšiřme si teď větvení o ELSE

# $Id: TUT.if2.ses,v 1.1 2003/12/28 18:21:58 radek Exp $
Gforth 0.6.2, Copyright (C) 1995-2003 Free Software Foundation, Inc.
Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license'
: iftest  IF ." TRUE" ELSE ." FALSE" THEN ;  ok
0 iftest FALSE ok
1 iftest TRUE ok
-1 iftest TRUE ok
BYE