Pascal - Dichiarazioni if-then annidate
È sempre legale nella programmazione Pascal annidare if-else dichiarazioni, il che significa che puoi usarne una if o else if dichiarazione dentro un'altra if o else ifdichiarazione (i). Pascal consente l'annidamento a qualsiasi livello, tuttavia, se dipende dall'implementazione Pascal su un particolare sistema.
Sintassi
La sintassi per un'istruzione if annidata è la seguente:
if( boolean_expression 1) then
if(boolean_expression 2)then S1
else
S2;
Puoi annidare else if-then-else nello stesso modo in cui hai annidato l'istruzione if-then. Si noti che il file nestedif-then-elsecostrutti dà luogo a qualche ambiguità su quale istruzione else si accoppia con quale istruzione if. La regola è che la parola chiave else corrisponde alla prima parola chiave if (ricerca all'indietro) non già corrispondente a un'altra parola chiave.
La sintassi precedente è equivalente a
if( boolean_expression 1) then
begin
if(boolean_expression 2)then
S1
else
S2;
end;
Non è equivalente a
if ( boolean_expression 1) then
begin
if exp2 then
S1
end;
else
S2;
Pertanto, se la situazione richiede il costrutto successivo, è necessario inserire begin e end parole chiave al posto giusto.
Esempio
program nested_ifelseChecking;
var
{ local variable definition }
a, b : integer;
begin
a := 100;
b:= 200;
(* check the boolean condition *)
if (a = 100) then
(* if condition is true then check the following *)
if ( b = 200 ) then
(* if nested if condition is true then print the following *)
writeln('Value of a is 100 and value of b is 200' );
writeln('Exact value of a is: ', a );
writeln('Exact value of b is: ', b );
end.
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
Value of a is 100 and b is 200
Exact value of a is : 100
Exact value of b is : 200