Arithmetic if
statement allows one to use three branches depending on the result of an arithmetic expression
if (arith_expr) label1, label2, label3
This if
statement transfers control flow to one of the labels in a code. If the result of arith_expr
is negative label1
is involved, if the result is zero label2
is used, and if the result is positive last label3
is applied. Arithmetic if
requires all three labels but it allows the re-use of labels, therefore this statement can be simplified to a two branch if
.
Examples:
if (N * N - N / 2) 130, 140, 130
if (X) 100, 110, 120
Now this feature is obsolete with the same functionality being offered by the if
statement and if-else
construct. For example, the fragment
if (X) 100, 110, 120
100 print*, "Negative"
goto 200
110 print*, "Zero"
goto 200
120 print*, "Positive"
200 continue
may be written as the if-else
construct
if (X<0) then
print*, "Negative"
else if (X==0) then
print*, "Zero"
else
print*, "Positive"
end if
An if
statement replacement for
if (X) 100, 100, 200
100 print *, "Negative or zero"
200 continue
may be
if (X<=0) print*, "Negative or zero"