Ripetere più volte l’esecuzione di una sequenza (con decisione in testa alla sequenza)
Decide se eseguire
- istruzione 1
- istruzione 2
- …
- e poi ritornare in alto
oppure proseguire direttamente con le istruzioni successive. |
 |
Rispetto alla ripetizione con controllo in coda c’è la possibilità che la sequenza controllata non venga eseguita neanche una volta.
C… |
|
while(A > 0) { istr1; istr2; } |
|
|
Pascal |
|
While A > 0 Do Begin Istr1; Istr2; End; |
|
|
Python |
|
|
SMALL
BASIC |
|
While A > 0 Istr1 Istr2 EndWhile |
|
|
VISUAL
BASIC |
|
While A > 0 Istr1 Istr2 Wend |
oppure
|
Do While A > 0 Istr1 Istr2 Loop |
|
|
Do Until A <= 0 Istr1 Istr2 Loop |
|
In Visual Basic c’è l’imbarazzo della scelta…
Approfondimento…
Si potrebbe risolvere lo stesso problema aggiungendo alla ripetizione con controllo in coda una decisione ulteriore in testa.
Decide (selezione singola) se eseguire o meno il blocco costituito da una ripetizione (con decisione in coda).
Si può fare ma… è troppo complicato, meglio utilizzare la possibilità di controllo in testa dell’esecuzione.
BASIC |
|
If A > 0 Then Do Istr1 Istr2 Loop While A > 0 End If |
|
|
If A > 0 Then Do Istr1 Istr2 Loop Until A <= 0 End If |
|
C… |
|
if A > 0 do { istr1; istr2; } while(A > 0); |
|
|
Pascal |
|
|
If A > 0 Then Repeat Istr1; Istr2; Until A <= 0; |
|