Istruzione Do…Loop

Ripete un blocco di istruzioni se una condizione restituisce True o finché una condizione non restituisce True.

Sintassi

Do {While | Until} condition
   [statements]
   [Exit Do]
   [statements]
Loop               

'or use below syntax

Do
  [statements] 
  [Exit Do]
  [statements]
Loop {While | Until} condition

Argomenti:

  • Condition: espressione numerica o stringa che restituisce True o False. Se la condizione è Null, la condizione viene considerata False.

  • Statements: una o più istruzioni che vengono ripetute mentre o finché la condizione è True.

Note

L'istruzione Exit Do può essere utilizzata solo all'interno di una struttura di controllo Do...Loop per fornire un modo alternativo per uscire da un'istruzione Do...Loop. Qualsiasi numero di istruzioni Exit Do può essere posizionato in qualsiasi punto dell'istruzione Do...Loop. Spesso utilizzata con la valutazione di alcune condizioni (ad esempio, If...Then), l'istruzione Exit Do trasferisce il controllo all'istruzione subito dopo il loop.

Se utilizzata all'interno di istruzioni Do...Loop nidificate, l'istruzione Exit Do trasferisce il controllo al loop nidificato di un livello superiore al loop in cui viene eseguita.

Negli esempi seguenti viene illustrato l'uso dell'istruzione Do...Loop.

Esempio 1

Dim flag , MyNum
flag = true  'initialises a variable
Do Until  flag= false
   MyNum = Int (6 * Rnd + 1)   ' Generate a random integer between 1 and 6.
   If MyNum = 4 Then
       flag=false 
  End If
Loop 

Esempio 2

Dim Check, Counter
Check = True   'Initialize variables.
Counter = 0   ' Initialize variables.
Do                            ' Outer loop.
   Do While Counter < 20      ' Inner loop.
      Counter = Counter + 1   ' Increment Counter.
      If Counter = 10 Then    ' If condition is True...
         Check = False        ' set value of flag to False.
         Exit Do              ' Exit inner loop.
      End If
   Loop
Loop Until Check = False      ' Exit outer loop immediately.

Esempio 3

Dim index
index = 0
Dim items(5)
items(0) = "Item1"
items(1) = "Item2"

Do While index < UBound(items)
        index = index + 1
Loop

Esempio 4

Dim count
count = 0
Do 
    'Operations based on requirement 
    count = count + 1
Loop While count < 1 ' Will exit after one iteration.

Esempio 5

Dim Val
Val =2
Do 
    If Val=5 Then Exit Do
    Val= Val+1
    'Operations based on requirement using value of Val
Loop While Val<10

Esempio 6

Dim Row, Col
Row= 1
Col =1
Do
    Col =1 
    Do 
        'Operations based on requirement using Row and Col
        Col = Col +1
    Loop While Col<4
    Row = Row +1
Loop While Row<4