Difference between revisions of "If and Then"
m (Fixed syntax highlighting; deleted category included in page template) |
|||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{then}} | {{then}} | ||
+ | The <syntaxhighlight lang="pascal" inline>if</syntaxhighlight> [[Keyword|keyword]] precedes a condition, must be followed by <syntaxhighlight lang="pascal" inline>then</syntaxhighlight> and a [[statement]]. | ||
+ | The statement may optionally be followed by [[Else|<syntaxhighlight lang="pascal" inline>else</syntaxhighlight>]] and another statement. | ||
+ | This creates a binary [[Branch|branch]]. | ||
− | + | == <syntaxhighlight lang="pascal" inline>If then</syntaxhighlight> == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<syntaxhighlight lang="pascal"> | <syntaxhighlight lang="pascal"> | ||
if condition | if condition | ||
Line 16: | Line 12: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | <syntaxhighlight lang="pascal" | + | <syntaxhighlight lang="pascal" inline>condition</syntaxhighlight> is a [[Boolean|<syntaxhighlight lang="pascal" inline>Boolean</syntaxhighlight>]] expression that evaluates to [[True|<syntaxhighlight lang="pascal" inline>true</syntaxhighlight>]] xor [[False|<syntaxhighlight lang="pascal" inline>false</syntaxhighlight>]]. |
− | <syntaxhighlight lang="pascal" | + | <syntaxhighlight lang="pascal" inline>true_statement</syntaxhighlight> is executed if <syntaxhighlight lang="pascal" inline>condition</syntaxhighlight> evaluates to <syntaxhighlight lang="pascal" inline>true</syntaxhighlight>. |
− | <syntaxhighlight lang="pascal" | + | <syntaxhighlight lang="pascal" inline>false_statement</syntaxhighlight> is executed if <syntaxhighlight lang="pascal" inline>condition</syntaxhighlight> evaluates to <syntaxhighlight lang="pascal" inline>false</syntaxhighlight>. |
− | A compile-time error occurs if the type of <syntaxhighlight lang="pascal" | + | A [[compile-time error]] occurs if the type of <syntaxhighlight lang="pascal" inline>condition</syntaxhighlight> does not evaluate to a <syntaxhighlight lang="pascal" inline>Boolean</syntaxhighlight> value. |
− | === Multiple statements in <syntaxhighlight lang="pascal" | + | === Multiple statements in <syntaxhighlight lang="pascal" inline>if then</syntaxhighlight> branch === |
− | If you need two or more statements for <syntaxhighlight lang="pascal" | + | If you need two or more statements for <syntaxhighlight lang="pascal" inline>true_statement</syntaxhighlight> or <syntaxhighlight lang="pascal" inline>false_statement</syntaxhighlight>, enclose them within a [[Begin|<syntaxhighlight lang="pascal" inline>begin</syntaxhighlight>]] … [[End|<syntaxhighlight lang="pascal" inline>end</syntaxhighlight>]] frame (“compound statement”). |
<syntaxhighlight lang="pascal"> | <syntaxhighlight lang="pascal"> | ||
Line 32: | Line 28: | ||
end; | end; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | == Usage == | ||
+ | In order to optimize for speed in an <syntaxhighlight lang="pascal" inline>if … then … else</syntaxhighlight> branch, try to write your expression so that the <syntaxhighlight lang="pascal" inline>then</syntaxhighlight>-part gets executed most often. | ||
+ | This improves the rate of successful <syntaxhighlight lang="asm" inline>jump</syntaxhighlight> predictions. | ||
== See also == | == See also == | ||
− | + | * Official documentation: [https://www.freepascal.org/docs-html/ref/refsu57.html Reference guide: § “The <syntaxhighlight lang="pascal" inline>If..then..else</syntaxhighlight> statement”] | |
− | * Official documentation: [https://www.freepascal.org/docs-html/ref/refsu57.html Reference guide: § “The <syntaxhighlight lang="pascal" | + | * [[IF]], Tao Yue, Basic Pascal Introduction |
− | * [[IF]], Tao Yue, | ||
* [[;#If statement and semicolon|If statement and semicolon]] | * [[;#If statement and semicolon|If statement and semicolon]] | ||
− | * [[Case|<syntaxhighlight lang="pascal" | + | * [[Case|<syntaxhighlight lang="pascal" inline>case</syntaxhighlight>]] |
{{Keywords}} | {{Keywords}} |
Revision as of 07:37, 22 June 2020
│
Deutsch (de) │
English (en) │
français (fr) │
русский (ru) │
The if
keyword precedes a condition, must be followed by then
and a statement.
The statement may optionally be followed by else
and another statement.
This creates a binary branch.
If then
if condition
then true_statement
else false_statement;
condition
is a Boolean
expression that evaluates to true
xor false
.
true_statement
is executed if condition
evaluates to true
.
false_statement
is executed if condition
evaluates to false
.
A compile-time error occurs if the type of condition
does not evaluate to a Boolean
value.
Multiple statements in if then
branch
If you need two or more statements for true_statement
or false_statement
, enclose them within a begin
… end
frame (“compound statement”).
if boolean_condition then
begin
statement_zero;
statement_one;
statement_two;
end;
Usage
In order to optimize for speed in an if … then … else
branch, try to write your expression so that the then
-part gets executed most often.
This improves the rate of successful jump
predictions.
See also
- Official documentation: Reference guide: § “The
If..then..else
statement” - IF, Tao Yue, Basic Pascal Introduction
- If statement and semicolon
case
Keywords: begin — do — else — end — for — if — repeat — then — until — while