Ripetizione
Con controllo in testa
Ripetere più volte l'esecuzione di una sequenza (con decisione in testa alla sequenza)Rispetto alla ripetizione con decisione in coda si vuole aggiungere la possibilità che la sequenza controllata non venga eseguita per nulla.
è necessaria una decisione ulteriore in testa...
Decide (selezione singola) se eseguire o meno il blocco costituito da una ripetizione (con decisione in coda)
| Basic | Pascal | C |
|---|---|---|
|
If A > 0 Then
Do Istr1 Istr2 Loop While A > 0 End If |
if A > 0
do { istr1; istr2; } while(A > 0); | |
|
If A > 0 Then
Do Istr1 Istr2 Loop Until A <= 0 End If |
If A > 0 Then
Repeat Istr1; Istr2; Until A <= 0; |
Si può fare ma... è troppo complicato, meglio utilizzare un'altra possibilità di controllo dell'esecuzione che semplifica tuttoDecide se
eseguire istruzione 1 istruzione 2, ... e poi ritornare in alto
oppure
proseguire direttamente con le istruzioni successive
| Basic | Pascal | C |
|---|---|---|
|
While A > 0
Istr1 Istr2 Wend |
While A > 0 Do
Begin Istr1; Istr2; End; |
while(A > 0)
{ istr1; istr2; } |
|
Do While A > 0
Istr1 Istr2 Loop | ||
|
Do Until A <= 0
Istr1 Istr2 Loop |
In Basic c'è l'imbarazzo della scelta...