Differenze tra le versioni di "DO - LOOP"

Da Gambas-it.org - Wikipedia.
Riga 3: Riga 3:
 
  ......
 
  ......
 
  Loop
 
  Loop
genera un ciclo infinito.
+
genera un ciclo <SPAN Style="text-decoration:underline">infinito</span>.
  
 
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.
Riga 13: Riga 13:
 
  Dim i As Integer
 
  Dim i As Integer
 
   
 
   
  <FONT Color=#B22222>Do</font>
+
<FONT Color=#B22222>Do</font>
    Print i
+
  Print i
    If i = 10 Then <FONT Color=#B22222>Break</font>  <FONT Color=gray>' ''Se "i" è uguale a 10, allora si esce dal ciclo''</font>
+
  If i = 10 Then <FONT Color=#B22222>Break</font>  <FONT Color=gray>' ''Se "i" è uguale a 10, allora si esce dal ciclo''</font>
    Inc i
+
  Inc i
  <FONT Color=#B22222>Loop</font>
+
<FONT Color=#B22222>Loop</font>
 
 
  Print i
 
 
    
 
    
 
  '''End'''
 
  '''End'''
Riga 25: Riga 23:
  
  
====Ciclo con ''Do While...Loop''====
+
==Introduzione della parola-chiave "While" nel ciclo ''Do...Loop''==
Il ciclo composto dalle parole-chiave ''Do...Loop'' può prevedere la presenza anche della parola ''While'' accanto a ''Do'' secondo la seguente sintassi:
+
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 <FONT Color=#B22222>While</font> ''condizione''
 
  Do <FONT Color=#B22222>While</font> ''condizione''
 
  ......
 
  ......
 
  Loop
 
  Loop
In tal caso il comportamente del ciclo è equivalente a quello della struttura ''While...Wend'', ossia finché la condizione è vera il ciclo viene compiuto.
+
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
 +
 +
<FONT Color=#B22222>Do <B>While</b></font> i < 10  <FONT Color=gray>' ''Se "i" è minore di 10, allora si effettua il ciclo''</font>
 +
  Print i
 +
  Inc i
 +
<FONT Color=#B22222>Loop</font>
 +
 
 +
'''End'''
 +
 +
===Ciclo con ''Do...Loop While''===
 +
Se la parola-chiave "''While'' " è posta dopo la parola-chiave ''Loop'':
 +
Do
 +
......
 +
Loop <FONT Color=#B22222>While</font> ''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:
 
Mostriamo un esempio:
Riga 38: Riga 57:
 
  Dim i As Integer
 
  Dim i As Integer
 
   
 
   
  <FONT Color=#B22222>Do While</font> i < 10  <FONT Color=gray>' ''Se "i" è minore di 10, allora si effettua il ciclo''</font>
+
<FONT Color=#B22222>Do</font>
    Print i
+
  Print i
    Inc i
+
  Inc i
  <FONT Color=#B22222>Loop</font>
+
<FONT Color=#B22222>Loop <B>While</b></font> i < 10  <FONT Color=gray>' ''Se "i" è minore di 10, allora si effettua il ciclo''</font>
 
    
 
    
  Print i
 
 
 
 
  '''End'''
 
  '''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, mentre in "''Do...Loop While'' " il ciclo si ripete fino a quando la condizione <SPAN Style="text-decoration:underline">è</span> vera, ossia perdura quella condizione prevista, nel secondo tipo invece il ciclo si ripete sino a quando la condizione prevista <SPAN Style="text-decoration:underline">diventa</span> vera.

Versione delle 09:19, 17 set 2020

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 solo - come già detto - qualora si intenda, al verificarsi di una determinata condizione, interrompere il ciclo uscendone.


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, mentre in "Do...Loop While " il ciclo si ripete fino a quando la condizione è vera, ossia perdura quella condizione prevista, nel secondo tipo invece il ciclo si ripete sino a quando la condizione prevista diventa vera.