Differenze tra le versioni di "DO - LOOP"

Da Gambas-it.org - Wikipedia.
 
(2 versioni intermedie di uno stesso utente non sono mostrate)
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:
  '''Public''' Sub Main()
+
  Public Sub Main()
 
   
 
   
Dim i As Integer
+
  Dim i As Integer
 
   
 
   
<FONT Color=#B22222>Do</font>
+
  <FONT Color=red><B>Do</b></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=red>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=red><B>Loop</b></font>
 
    
 
    
  '''End'''
+
  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.
 
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''==
 
==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'' ":
+
Il ciclo "''Do...Loop'' " può contenere anche la presenza della parola-chiave '''UNTIL''', purché dopo la parola-chiave '''LOOP''':
 
  Do
 
  Do
 
  ......
 
  ......
  Loop <FONT Color=#B22222>Until</font> ''condizione''
+
  Loop <FONT Color=red>Until</font> ''condizione''
 
il comportamento del ciclo è equivalente a quello della struttura "''[[REPEAT_-_UNTIL|Repeat...Until]]'' ", il ciclo si ripete sino a quando la condizione prevista <SPAN Style="text-decoration:underline">diventa</span> vera, ossia quando la condizione diventa vera si esce dal ciclo.
 
il comportamento del ciclo è equivalente a quello della struttura "''[[REPEAT_-_UNTIL|Repeat...Until]]'' ", il ciclo si ripete sino a quando la condizione prevista <SPAN Style="text-decoration:underline">diventa</span> vera, ossia quando la condizione diventa vera si esce dal ciclo.
  
 
Mostriamo un esempio:
 
Mostriamo un esempio:
  '''Public''' Sub Main()
+
  Public Sub Main()
 
   
 
   
Dim i As Integer
+
  Dim i As Integer
 
   
 
   
<FONT Color=#B22222>Do</font>
+
  <FONT Color=redDo</font>
  Print i
+
    Print i
  Inc i
+
    Inc i
<FONT Color=#B22222>Loop <B>Until</b></font> i == 10  <FONT Color=gray>' ''Soltanto quando "i" diventerà uguale a 10, si esce dal ciclo''</font>
+
  <FONT Color=red>Loop <B>Until</b></font> i == 10  <FONT Color=gray>' ''Soltanto quando "i" diventerà uguale a 10, si esce dal ciclo''</font>
 
    
 
    
  '''End'''
+
  End
  
  
 
==Introduzione della parola-chiave "While" nel ciclo ''Do...Loop''==
 
==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.
+
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''===
 
===Ciclo con ''Do While...Loop''===
 
Se la parola-chiave "''While'' " è posta dopo la parola-chiave "''Do'' ":
 
Se la parola-chiave "''While'' " è posta dopo la parola-chiave "''Do'' ":
  Do <FONT Color=#B22222>While</font> ''condizione''
+
  Do <FONT Color=red>While</font> ''condizione''
 
  ......
 
  ......
 
  Loop
 
  Loop
Riga 54: Riga 53:
  
 
Mostriamo un esempio:
 
Mostriamo un esempio:
  '''Public''' Sub Main()
+
  Public Sub Main()
 
   
 
   
Dim i As Integer
+
  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>
+
  <FONT Color=red>Do <B>While</b></font> i < 10  <FONT Color=gray>' ''Se "i" è minore di 10, allora si effettua il ciclo''</font>
  Print i
+
    Print i
  Inc i
+
    Inc i
<FONT Color=#B22222>Loop</font>
+
  <FONT Color=red>Loop</font>
 
    
 
    
  '''End'''
+
  End
  
 
===Ciclo con ''Do...Loop While''===
 
===Ciclo con ''Do...Loop While''===
Se la parola-chiave "''While'' " è posta dopo la parola-chiave ''Loop'':
+
Se la parola-chiave ''While'' è posta dopo la parola-chiave ''Loop'':
 
  Do
 
  Do
 
  ......
 
  ......
  Loop <FONT Color=#B22222>While</font> ''condizione''
+
  Loop <FONT Color=red>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.
+
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:
  '''Public''' Sub Main()
+
  Public Sub Main()
 
   
 
   
Dim i As Integer
+
  Dim i As Integer
 
   
 
   
<FONT Color=#B22222>Do</font>
+
  <FONT Color=red>Do</font>
  Print i
+
    Print i
  Inc i
+
    Inc i
<FONT Color=#B22222>Loop <B>While</b></font> i < 10  <FONT Color=gray>' ''Se "i" è minore di 10, allora si effettua il ciclo''</font>
+
  <FONT Color=red>Loop <B>While</b></font> i < 10  <FONT Color=gray>' ''Se "i" è minore di 10, allora si effettua il ciclo''</font>
 
    
 
    
  '''End'''
+
  End
  
====Differenza fra il ciclo "''Do...Loop While'' " e il ciclo "''Repeat...Until'' "====
+
====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:
 
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 <SPAN Style="text-decoration:underline">è</span> vera, ossia fino a quando perdura quella condizione prevista, e pertanto quando la condizione non è più vera, si esce dal ciclo;
 
* in "''Do...Loop While'' " il ciclo si ripete fino a quando la condizione <SPAN Style="text-decoration:underline">è</span> 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 <SPAN Style="text-decoration:underline">diventa</span> vera, ossia quando la condizione diventa vera si esce dal ciclo.
 
* in "''Repeat...Until'' " il ciclo si ripete sino a quando la condizione prevista <SPAN Style="text-decoration:underline">diventa</span> vera, ossia quando la condizione diventa vera si esce dal ciclo.
 
I due tipi di cicli sono in sostanza opposti.
 
I due tipi di cicli sono in sostanza opposti.

Versione attuale delle 11: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.