Guida al Visual Basic .NET
Capitolo 9° - Il costrutto iterativo Do Loop
Abbiamo visto che esistono costrutti per verificare condizioni, o anche per verificare in modo semplice e veloce molte ugualiglianze.
Ora vedremo i cicli o costrutti iterativi (dal latino iter, itineris = "viaggio", ma anche "per la seconda volta"). Essi hanno il compito di ripetere un blocco di istruzioni
un numero determinato o indeterminato di volte. Il primo che analizzeremo è, appunto, il costrutto Do Loop, di cui esistono molte varianti.
La più semplice è ha questa sintassi:
Do 'istruzioni LoopIl suo compito consiste nel ripete delle istruzioni comprese tra Do e Loop un numero infinito di volte: l'unico modo per uscire dal ciclo è usare una speciale istruzione: "Exit Do", la quale ha la capacità di interrompere il ciclo all'istante ed uscire da esso. Questa semplice variante viene usata in un numero ridotto di casi, che si possono ricondurre sostanzialmente a due: quando si lavora con la grafica e le librerie DirectX, per disegnare a schermo i costanti cambiamenti del mondo 2D o 3D; quando è necessario verificare le condizioni di uscita dal ciclo all'interno del suo blocco di codice. Ecco un esempio di questo secondo caso: Module Module1 Sub Main() Dim a, b As Single Do 'Pulisce lo schermo Console.Clear() 'L'underscore serve per andare a capo nel codice Console.WriteLine("Inserire le misure di base e altezza " & _ "di un rettangolo:") a = Console.ReadLine b = Console.ReadLine 'Controlla che a e b non siano nulli. In quel caso, esce 'dal ciclo. Se non ci fosse questo If in mezzo al codice, 'verrebbe scritto a schermo il messaggio: ' "L'area del rettangolo è: 0" 'cosa che noi vogliamo evitare. Se si usasse un'altra 'variante di Do Loop, questo succederebbe sempre. Ecco 'perchè, in questa situazione, è meglio 'servirsi del semplice Do Loop If a = 0 Or b = 0 Then Exit Do End If Console.WriteLine("L'area del rettangolo è: " & (a * b)) Console.ReadKey() Loop End Sub End ModuleLe altre versioni del costrutto, invece, sono le seguenti:
Module Module1 Sub Main() Dim a, b, c As Int32 Dim n As Int32 Console.WriteLine("-- Successione di Fibonacci --") Console.WriteLine("Inserire un numero oltre il quale terminare:") n = Console.ReadLine If n = 0 Then Console.WriteLine("Nessun numero della successione") Console.ReadKey() Exit Sub End If a = 1 b = 1 Console.WriteLine(a) Console.WriteLine(b) Do While c < n c = a + b b = a a = c Console.WriteLine(c) Loop Console.ReadKey() End Sub End Module Suggerimento Per impostare il valore di Default (ossia il valore predefinito) di una variabile si può usare questa sintassi: Dim [nome] As [tipo] = [valore]Funziona solo per una variabile alla volta. Questo tipo di istruzione si chiama inizializzazione in-line.
C#, TypeScript, java, php, EcmaScript (JavaScript), Spring, Hibernate, React, SASS/LESS, jade, python, scikit, node.js, redux, postgres, keras, kubernetes, docker, hexo, etc...
|