DO - LOOP

Da Gambas-it.org - Wikipedia.

Il ciclo Do...Loop, la cui sintassi è:

Do
......
Loop

genera un ciclo infinito.

Pertanto, per uscire dal ciclo, è necessario porre una istruzione decisionale di controllo, come ad esempio "IF", unitamente al comando "Break ". Al verificarsi di una data condizione, viene richiamata l'istruzione "Break " che consente così l'uscita in quella riga dal ciclo.


Mostriamo un esempio:

Public Sub Main()

 Dim i As Integer

 Do
   Print i
   If i == 10 Then Break   ' Se "i" è uguale a 10, allora si esce dal ciclo
   Inc i
 Loop
 
End

E' ovvio che ai fini del funzionamento in sé del ciclo generato da "Do...Loop " non è necessaria la riga di controllo con "IF" ed il comando "Break ", essendo utili questi - come già detto - solo qualora si intenda, al verificarsi di una determinata condizione, interrompere il ciclo uscendone.


Introduzione della parola-chiave "Until" nel ciclo Do...Loop

Il ciclo "Do...Loop " può contenere anche la presenza della parola-chiave "Until ", purché dopo la parola-chiave "Loop ":

Do
......
Loop Until condizione

il comportamento del ciclo è equivalente a quello della struttura "Repeat...Until ", il ciclo si ripete sino a quando la condizione prevista diventa vera, ossia quando la condizione diventa vera si esce dal ciclo.

Mostriamo un esempio:

Public Sub Main()

 Dim i As Integer

 Do
   Print i
   Inc i
 Loop Until i == 10   ' Soltanto quando "i" diventerà uguale a 10, si esce dal ciclo
 
End


Introduzione della parola-chiave "While" nel ciclo Do...Loop

Il ciclo "Do...Loop " può contenere anche la presenza della parola-chiave "While ". La parola-chiave "While " è sempre seguita da una condizione che deve essere verificata ad ogni ripetizione del ciclo.

Ciclo con Do While...Loop

Se la parola-chiave "While " è posta dopo la parola-chiave "Do ":

Do While condizione
......
Loop

il comportamento del ciclo è equivalente a quello della struttura While...Wend, ossia finché la condizione è vera il ciclo viene compiuto.

Mostriamo un esempio:

Public Sub Main()

 Dim i As Integer

 Do While i < 10   ' Se "i" è minore di 10, allora si effettua il ciclo
   Print i
   Inc i
 Loop
  
End

Ciclo con Do...Loop While

Se la parola-chiave "While " è posta dopo la parola-chiave Loop:

Do
......
Loop While condizione

questo ciclo è equivalente al ciclo "Do...While( ) " del linguaggio C, e anche in questo caso finché la condizione è vera il ciclo viene compiuto.

Mostriamo un esempio:

Public Sub Main()

 Dim i As Integer

 Do
   Print i
   Inc i
 Loop While i < 10   ' Se "i" è minore di 10, allora si effettua il ciclo
 
End

Differenza fra il ciclo "Do...Loop While " e il ciclo "Repeat...Until "

Come si può notare la differenza fra il ciclo "Do...Loop While " e il ciclo "Repeat...Until " consiste nella circostanza che:

  • in "Do...Loop While " il ciclo si ripete fino a quando la condizione è vera, ossia fino a quando perdura quella condizione prevista, e pertanto quando la condizione non è più vera, si esce dal ciclo;
  • in "Repeat...Until " il ciclo si ripete sino a quando la condizione prevista diventa vera, ossia quando la condizione diventa vera si esce dal ciclo.

I due tipi di cicli sono in sostanza opposti.