Condividi tramite


Informazioni dettagliate: utilizzo di Do...While e Do...Until per la ripetizione di codice in base a una particolare condizione

Aggiornamento: novembre 2007

In questa lezione verrà descritto come utilizzare le istruzioni Do...While e Do...Until per ripetere codice in base a determinate condizioni.

Nella lezione precedente è stato descritto come utilizzare l'istruzione For...Next per scorrere in ciclo un blocco di codice per un numero di volte specificato. In questa lezione verrà invece indicato come gestire codice che deve essere ripetuto per un numero di volte diverso in base a determinate condizioni. Le istruzioni Do...While e Do...Until consentono di ripetere un blocco di codice mentre una determinata condizione è True o fino a quando una determinata condizione non diventa True.

Si supponga ad esempio di avere creato un programma per sommare una serie di numeri, il cui totale però non deve mai essere superiore a 100. È possibile utilizzare l'istruzione Do...While per eseguire la somma come illustrato di seguito:

Dim sum As Integer = 0
Do While sum < 100
  sum = sum + 10
Loop

In questo codice, la riga Do While valuta la variabile sum per verificare se sia o meno inferiore a 100. In caso affermativo, verrà eseguita la riga di codice successiva; in caso contrario, si passerà alla riga di codice che segue Loop. La parola chiave Loop indica al codice di tornare alla riga DoWhile e valutare il nuovo valore di sum.

Procedura

Per utilizzare un'istruzione Do...While

  1. Scegliere Nuovo progetto dal menu File.

  2. Nel riquadro Modelli della finestra di dialogo Nuovo progetto fare clic su Applicazione Windows.

  3. Digitare DoWhile nella casella Nome, quindi scegliere OK.

    Verrà aperto un nuovo progetto Windows Form.

  4. Dalla Casella degli strumenti trascinare un controllo TextBox e un controllo Button nel form.

  5. Fare doppio clic sul controllo Button per aprire l'editor di codice.

  6. Nel gestore eventi Button1_Click digitare il seguente codice:

    Dim sum As Integer = 0
    Dim counter As Integer = 0
    Do While sum < 100
      sum = sum + CInt(Textbox1.Text)
      counter = counter + 1
    Loop
    MsgBox("The loop has run " & CStr(counter) & " times!")
    
  7. Premere F5 per eseguire il programma.

  8. Digitare un numero nella casella di testo, quindi fare clic sul pulsante.

    Verrà visualizzata una finestra di messaggio che indica quante volte il numero è stato sommato prima di raggiungere il valore 100.

  9. Scegliere Termina debug dal menu Debug per terminare il programma. Tenere aperto il progetto perché verrà aggiunto altro codice.

Istruzione Do...Until

L'istruzione Do...While ripete un ciclo fino a quando una condizione rimane True. In alcuni casi, tuttavia, è necessario ripetere codice fino a quando una condizione non diventa True. A tale scopo è possibile utilizzare l'istruzione Do...Until come illustrato di seguito:

Dim sum As Integer = 0
Do Until sum >= 100
  sum = sum + 10
Loop

Questo codice è simile a quello dell'istruzione Do...While, ma in questo caso il codice valuta la variabile sum per verificare se sia uguale o maggiore di 100.

Procedura

La procedura riportata di seguito inizia dove termina la procedura "Per utilizzare un'istruzione Do...While". Se quest'ultima non è stata completata, è necessario effettuare questa operazione prima di proseguire.

Per utilizzare un'istruzione Do...Until

  1. Aggiungere il codice riportato di seguito al di sotto della riga MsgBox.

    Dim sum2 As Integer = 0
    Dim counter2 As Integer = 0
    Do Until sum2 >= 100
      sum2 = sum2 + CInt(Textbox1.Text)
      counter2 = counter2 + 1
    Loop
    MsgBox("The loop has run " & CStr(counter2) & " times!")
    
  2. Premere F5 per eseguire il programma.

  3. Digitare un numero nella casella di testo, quindi fare clic sul pulsante.

    Verrà visualizzata una seconda finestra di messaggio che indica quante volte il numero è stato sommato prima di risultare maggiore o uguale a 100.

Passaggi successivi

In questo argomento è stato descritto come utilizzare i cicli Do...While e Do...Until per ripetere codice in base a determinate condizioni. A questo punto è possibile proseguire con la lezione successiva Scelta tra due possibilità: istruzione If...Then.

Vedere anche

Attività

Ripetizione di azioni: utilizzo di un ciclo For...Next

Riferimenti

Istruzione Do...Loop (Visual Basic)