Difference between revisions of "Basic Pascal Tutorial/Chapter 3/IF"
(New page: 3Ca - IF The <tt>IF</tt> statement allows you to branch based on the result of a Boolean operation. The one-way branch format is: <font color="#006699"><strong>if</strong></font> Boolean...) |
|||
Line 1: | Line 1: | ||
− | 3Ca - IF | + | 3Ca - IF (author: Tao Yue, state: unchanged) |
The <tt>IF</tt> statement allows you to branch based on the result of a Boolean operation. The one-way branch format is: | The <tt>IF</tt> statement allows you to branch based on the result of a Boolean operation. The one-way branch format is: |
Revision as of 21:40, 25 November 2007
3Ca - IF (author: Tao Yue, state: unchanged)
The IF statement allows you to branch based on the result of a Boolean operation. The one-way branch format is:
if BooleanExpression then StatementIfTrue;
If the Boolean expression evaluates to true, the statement executes. Otherwise, it is skipped.
The IF statement accepts only one statement. If you would like to branch to a compound statement, you must use a begin-end to enclose the statements:
if BooleanExpression then begin Statement1; Statement2 end;
There is also a two-way selection:
if BooleanExpression then StatementIfTrue else StatementIfFalse;
If the Boolean expression evaluates to FALSE, the statement following the else will be performed. Note that you may not use a semicolon after the statement preceding the else. That causes the computer to treat it as a one-way selection, leaving it to wonder where the else came from.
If you need multi-way selection, simply nest if statements:
if Condition1 then Statement1 else if Condition2 then Statement2 else Statement3;
Be careful with nesting. Sometimes the computer won't do what you want it to do:
if Condition1 then if Condition2 then Statement2 else Statement1;
The else is always matched with the most recent if, so the computer interprets the preceding block of code as:
if Condition1 then if Condition2 then Statement2 else Statement1;
You can get by with a null statement:
if Condition1 then if Condition2 then Statement2 else else Statement1;
Or you could use a begin-end block. But the best way to clean up the code would be to rewrite the condition.
if not Condition1 then Statement1 else if Condition2 then Statement2;
This example illustrates where the not operator comes in very handy. If Condition1 had been a Boolean like: (not(a < b) or (c + 3 > 6)) and g, reversing the expression would be more difficult than NOTting it.
Also notice how important indentation is to convey the logic of program code to a human, but the compiler ignores the indentation.
previous | contents | next |