IF THEN ELSE END IF

Voorbeelden:
IF test expressie THEN expressie(s)
IF test expressie GOTO [branchlabel]

IF test expressie THEN expressie(s)1 ELSE expressie(s)2
IF test expressie GOTO [branchlabel1] ELSE [branchlabel2]

IF test expressie THEN
expressie(s)1
END IF

IF test expressie THEN
expressie(s)1
ELSE
expressie(s)2
END IF

Beschrijving:

IF… THEN

Het hele statement op één regel
is een manier om de programmalijn te af te laten takken
veranderen op grond van een uitdrukking die wordt getest.
IF …THEN behoort tot één van de beslisstructuren in BASIC.
In de volgende opdracht bijvoorbeeld, laat het programma de uitvoering aftakken
(als de brandstof laag is) naar de regel waar het etiket [soundAlarm] staat.

if fuel < 5 then [soundAlarm]

Omdat de uitdrukking na de term THEN een aftakking naar een etiket (label in het Engels)
in het programma veroorzaakt, kan dit statement ook geschreven worden door gebruik te maken
van het commando GOTO in plaats van het THEN statement

if fuel < 5 goto [soundAlarm]

Telkens wanneer het statement dat na THEN volgt een aftak etiket (label) is,
kunt u GOTO in plaats van THEN gebruiken.

Een andere manier om de programmastroom te controleren is:

IF…THEN… ELSE

Het hele statement op één regel
Hiermee wordt het IF..THEN uitgebreid met expressiviteit en kan de codering
van logische beslisstructuren worden vereenvoudigd.
Hier is een voorbeeld van zijn gebruik.

Kijk eens goed naar:

[retry]
input "Please choose mode, (N)ovice or e(X)pert?"; mode$
if len(mode$) = 0 then print "Invalid entry! Retry" : goto [retry]
mode$ = left$(mode$, 1)
if instr("NnXx", mode$) = 0 then print "Invalid entry! Retry" : goto [retry]
if instr("Nn", mode$) > 0 then print "Novice mode" : goto [main]
print "eXpert mode"
[main]
print "Main Selection Menu"

Deze regels met de voorwaarden zouden als volgt samengevat kunnen worden:
if instr("Nn",mode$)> 0 then print "Novice mode" else print "eXpert mode"

De hierna volgende vormen zijn toegestaan:

if a < b then statement else statement
if a < b then [label] else statement
if a < b then statement else [label]
if a < b then statement : statement else statement
if a < b then statement else statement : statement
if a < b then statement : goto [label] else statement
if a < b then gosub [label1] else gosub [label2]

U mag alle mogelijke variaties op deze formats maken. De (a < b) BOOLEAN expressie is natuurlijk slecht als een eenvoudig voorbeeld gekozen
U moet de juiste uitdrukkingen samenstellen bij het oplossen van problemen.

IF...THEN ... END IF


is een andere vorm van wat wij "conditional blocks" noemen.
Hierdoor krijgt u grote controle over de richting waarin uw programma
moet gaan bij het nemen van beslissingen.
Hier is een voorbeeld waarin blocks worden gebruikt.

if qtySubdirs = 0 then
print "None."
goto [noSubs]
end if

Een blok (block) zijn eigenlijk gewoon één of meer regels die gezamenlijk uitgevoerd worden
als gevolg van een conditionele test. Er is in het volgende stukje code
één blok aanwezig dat uitgevoerd wordt als qtySubdirs = 0.

Het is ook mogelijk om het commandowoord ELSE in de blokken te gebruiken:

    if qtySubdirs = 0 then
        print "None."
      else
        print "Count of subdirectories: "; qtySubdirs
    end if

Dergelijke code is eenvoudig te lezen en te begrijpen.
Er zijn twee blokken in dit voorbeeld. Eén wordt allen uitgevoerd als qtySubdirs = 0
en één wordt uitgevoerd als qtySubdirs niet gelijk is aan 0
Slecht eéén van beide blokken zal uitgevoerd kunnen worden (nooit beide door hetzelfde resultaat van de test)

These conditional blocks can be nested inside each other:

    if verbose = 1 then
if qtySubdirs = 0 then
print "None."
else
print "Count of subdirectories: "; qtySubdirs
end if
end if

In the example above, if the verbose flag is set to 1 (true),
then display something, or else skip the display code entirely.

See also: Select Case, Conditional Statements, Boolean Evaluations