Pascal/Istruzioni di controllo: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 55:
</source>
 
imma
=== Selezione multipla ===
imma
 
imma
Con l'uso del costrutto <code>case... of</code> è possibile eseguire selezioni più complesse. La sintassi è:
imma
 
imma
<source lang=pascal>
imma
case espressione of
imma
valore 1 : begin
imma
istruzioni;
imma
end;
imma
valore 2 : begin
imma
istruzioni;
imma
end;
imma
...
imma
imma
valore n : begin
imma
istruzioni
imma
end;
imma
imma
else begin
imma
istruzioni;
imma
end;
imma
end;
imma
</source>
imma
 
sandro
Con il costrutto ''case'', il valore dell'espressione in testa viene confrontato con il valore di ogni singolo caso; quando viene trovato un valore che soddisfa le condizioni sul selettore vengono eseguite le istruzioni relative al blocco in questione; poi il controllo passa alla prima istruzione dopo il costrutto ''case''.
Se nessun valore soddisfa il selettore viene eseguita l'ultimo blocco di istruzioni individuato dalla parola chiave '''else''' (se questo blocco è stato inserito). Se la parte con ''else'' viene omessa e il selettore non eguaglia nessuno dei casi in elenco, si passa anche in questo caso alla prima istruzione dopo il costrutto ''case''.
 
Quando c'è solo un'istruzione che segue un certo caso si possono omettere ''begin'' e ''end'' (questo perché, in realtà, le istruzioni delimitate da begin ed end si possono considerare come un'unica istruzione).
 
Occorre fare attenzione che il costrutto ''case'' termina con un ''end''.
Facciamo un esempio del costrutto case:
 
<source lang=pascal>
case contatore of
1, 2, 50, 210: writeln(contatore);
30, 60..80 : begin
writeln(variabile);
end;
end;
</source>
 
Ecco di seguito alcune considerazioni sull'esempio proposto:
*è stata omesso il blocco facoltativo '''else'''
*sono state indicate delle liste di possibili casi
*è stato usato un range di valori x..y; al terzo rigo,''60..80'' indica tutti i valori compresi tra 60 e 80 (inclusi).
 
== Strutture Iterative ==