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