====== IF ======
===== if_statement =====
[ if _label : ]
if condition then
sequence_of_statements
{ elsif condition then
sequence_of_statements }
[ else
sequence_of_statements ]
end if [ if _label ] ;
===== Parents =====
* function_statement_part
* procedure_statement_part
* process_statement_part
===== Further definitions =====
==== label ====
* [[.:bnf#identifier]]
==== condition ====
''//boolean// _[[.:bnf#expression]]''
==== sequence_of_statements ====
''{ [[.:bnf#sequential_statement]] }''
===== Examples =====
If //a// has the value //1// then //b// is assigned the value //0// .
IF a = '1' THEN
b := '0' ;
END IF ;
----
If the value of //a// is bigger than //0// then //b// is assigned the value of //a//, otherwise that of **ABS** ( //a + 1// ).
IF a > 0 THEN
b := a ;
ELSE
b := ABS ( a + 1 ) ;
END IF ;
----
This is an example of a complete **IF** - **ELSIF** -loop. The conditions are checked one after the other. When the first match is found the relevant actions are carried out and the **IF** -loop is left.
IF val >= 5 AND val < 10 THEN
int := 7 ;
ELSIF val < 5 THEN
int := val + func( val + 2 ) ;
ELSIF val < 15 THEN
int := func( val ) ;
ELSE
int := 0 ;
END IF ;