Differenze tra le versioni di "DO - LOOP"

Da Gambas-it.org - Wikipedia.
 
Riga 6: Riga 6:
  
 
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.
 
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:
 
Mostriamo un esempio:
Riga 13: Riga 12:
 
   Dim i As Integer
 
   Dim i As Integer
 
   
 
   
   <FONT Color=red>Do</font>
+
   <FONT Color=red><B>Do</b></font>
 
     Print i
 
     Print i
 
     If i == 10 Then <FONT Color=red>Break</font>  <FONT Color=gray>' ''Se "i" è uguale a 10, allora si esce dal ciclo''</font>
 
     If i == 10 Then <FONT Color=red>Break</font>  <FONT Color=gray>' ''Se "i" è uguale a 10, allora si esce dal ciclo''</font>
 
     Inc i
 
     Inc i
   <FONT Color=red>Loop</font>
+
   <FONT Color=red><B>Loop</b></font>
 
    
 
    
 
  End
 
  End

Versione attuale delle 12:59, 5 lug 2024

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

 <FONT Color=redDo</font>
   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.