For the single line statements, note that in the Synopsis above a line number may appear in place of statements as shorthand for "goto LineNum" (see goto). Also, note that "goto" may appear as shorthand for "then goto." LineNum is a line number and LineLab is a line label. Statements are one or more colon separated statements, including if...then...else statements. That is, if...then...else statements may be nested. Execution proceeds as follows: The conditional is evaluated. If true and a then clause appears, it is executed. If false and a else clause appears, it is executed. If a selected clause is missing and when the execution of a clause is completed, execution continues with the next executable statement after the if...then...else statement. The then clause is composed of those statements that appear after the word then but before the word else (if present). The else clause is composed of those statements that appear after the word else.
For the block if statement, note that an if...then statement must appear as the only statement on a physical line of a file. Also, note that an elseif...then, else or end if statement must appear as the first statement on a line. The form of the block if statement is an if...then followed by zero or more elseif...then statements followed by an optional else statement followed by an end if statement. Other statements may appear between these block if statements. Block if statements may be nested. Execution proceeds as follows: The conditional of the if...then statement is evaluated. If true and statements appear after the then, they are executed. If false, the conditional of the first elseif...then statement (if any) is evaluated. If that conditional is true and statements appear after the then, they are executed. The conditional of each elseif...then is evaluated in turn until a true value results. If all are false and an else statement appears, the statements after the else are executed. If a selected set of statements is missing and when the execution of a selected set of statements is completed, execution continues with the next executable statement after the end if statement.
if x < y then 10 else if x = y then 20 else 30branches three ways: to line 10, 20 or 30 based on whether the comparison of "x" and "y" is less than, equal to or greater than. This statement can be made more readable as a block if statement:
if x < y then goto 10 elseif x = y then goto 20 else goto 30 end ifThe program
loop: input "which year"; y% if y% = 0 then end if y% mod 4 = 0 then if y% mod 100 = 0 then if y% mod 400 = 0 then print y% "is a leap year" else print y% "is not a leap year" end if else print y% "is a leap year" end if else print y% "is not a leap year" end if goto loopmight be run as follows:
$ a.out which year? 1987 1987 is not a leap year which year? 1984 1984 is a leap year which year? 1900 1900 is not a leap year which year? 2000 2000 is a leap year which year? 0 $
from The Basmark QuickBASIC Programmer’s Manual by Lawrence Leinweber