Con il ciclo while in Java, potete eseguire le istru­zio­ni finché non si verifica una con­di­zio­ne di ter­mi­na­zio­ne. Questa forma di ciclo può anche essere combinata e annidata.

Web Hosting
Diventa il n°1 della rete con il provider di hosting n°1 in Europa
  • Di­spo­ni­bi­li­tà garantita al 99,99%
  • Dominio, SSL ed e-mail inclusi
  • As­si­sten­za 24/7 in lingua italiana

Cos’è il ciclo while in Java?

Il ciclo while offre agli utenti di Java la pos­si­bi­li­tà di eseguire un numero qualsiasi di istru­zio­ni, purché una con­di­zio­ne pre­ce­den­te­men­te definita sia vera. Non è richiesta una variabile di conteggio, perciò la con­di­zio­ne di ter­mi­na­zio­ne può essere definita anche se­pa­ra­ta­men­te.

La con­di­zio­ne di ter­mi­na­zio­ne, scritta tra parentesi tonde, funziona secondo la formula booleana. Ciò significa che il ciclo while in Java esegue le istru­zio­ni me­mo­riz­za­te finché la con­di­zio­ne spe­ci­fi­ca­ta nell’in­te­sta­zio­ne è sod­di­sfat­ta, quindi “true”. Se la con­di­zio­ne di ter­mi­na­zio­ne diventa per la prima volta “false”, il ciclo viene terminato. Poiché la con­di­zio­ne di ter­mi­na­zio­ne è già definita nella testa del ciclo while in Java, si parla di ciclo con controllo in testa.

Come si co­strui­sce il ciclo while in Java?

La struttura di un ciclo while in Java è sempre simile. La sintassi rimane la stessa, ma cambiano solo le di­chia­ra­zio­ni e la con­di­zio­ne di ter­mi­na­zio­ne. In­nan­zi­tut­to, il termine “while” introduce il ciclo, poi segue la con­di­zio­ne di ter­mi­na­zio­ne tra parentesi tonde e infine una o più istru­zio­ni tra parentesi graffe. Il codice sorgente del ciclo while in Java si presenta quindi così:

while ( Condizione di terminazione ) {
Istruzione
}

La procedura è sempre la seguente:

  1. Il programma verifica la con­di­zio­ne.
  2. Se questa con­di­zio­ne è sod­di­sfat­ta, l’ap­pli­ca­zio­ne Java esegue l’istru­zio­ne.
  3. Il programma torna quindi all’inizio.
  4. La con­di­zio­ne viene nuo­va­men­te ve­ri­fi­ca­ta.
  5. Se ora questo valore è “false”, il programma esce dal ciclo while in Java e prosegue con il codice.

Esempio di un ciclo semplice

Un esempio semplice di utilizzo di un ciclo while in Java è un contatore che deve contare fino a un certo valore. Lo fa esat­ta­men­te fino a quando non viene raggiunto il valore spe­ci­fi­ca­to, ovvero la con­di­zio­ne di ter­mi­na­zio­ne. Scritta, si presenta così:

int i = 0;
while ( i <= 5 ) {
System.out.println ("Il valore corrente è: " + i );
i++;
}

In questa con­fi­gu­ra­zio­ne la variabile “i” parte da zero. Ora dovrebbe aumentare di 1 fino a rag­giun­ge­re il valore “5”. Ciò avviene tramite l’operatore Java ++. Al turno suc­ces­si­vo, quando il valore sarà “6”, il programma terminerà, con­clu­den­do così il ciclo while in Java. Pertanto, verrà mostrata la serie di numeri 1, 2, 3, 4, 5 con il comando Java System.out.println.

Evitare i cicli infiniti

Sebbene il ciclo while in Java sia fon­da­men­tal­men­te semplice, presenta alcune fonti di errore che possono portare a un’ese­cu­zio­ne non corretta. Se manca un’in­for­ma­zio­ne im­por­tan­te o la con­di­zio­ne di ter­mi­na­zio­ne non può mai essere raggiunta, il ciclo diventa infinito e causa un crash o in­ter­rom­pe il programma a un certo punto. Ciò accade, ad esempio, se il controllo della con­di­zio­ne di ter­mi­na­zio­ne dà sempre come risultato “true” o se non è possibile rag­giun­ge­re il valore de­si­de­ra­to.

La dif­fe­ren­za tra while e do-while in Java

Oltre a while, in Java esiste anche il ciclo do-while. Non solo ha un nome simile, ma funziona quasi esat­ta­men­te come il ciclo while. La dif­fe­ren­za so­stan­zia­le è che il ciclo while con controllo in testa verifica in anticipo la con­di­zio­ne di ter­mi­na­zio­ne, mentre il ciclo do-while con controllo in coda attende che l’istru­zio­ne o le istru­zio­ni siano state eseguite almeno una volta. Questo si scorge già dalla struttura:

int i = 0;
fare {
System.out.println ("Il valore corrente è: " + i );
i++;
}
while ( i <= 5 );

In questo caso, il codice viene eseguito almeno una volta e la con­di­zio­ne viene con­trol­la­ta suc­ces­si­va­men­te.

Ni­di­fi­ca­zio­ne dei cicli while in Java

In Java avete anche la pos­si­bi­li­tà di collegare più cicli while o annidarli l’uno nell’altro. Un esempio con due contatori si presenta così:

int i = 0;
while ( i <= 5 ) {
System.out.println ("Il valore corrente è: " + i );
i++;
int passaggio intermedio = 0;
while ( passaggio intermedio <= 3 ) {
System.out.println ("Il valore intermedio corrente è : " + passaggio intermedio );
Passaggio intermedio++;
}
}

Prima di tutto, il programma Java controlla il ciclo while esterno. Se è “true”, il programma passa al ciclo interno e ne verifica la cor­ret­tez­za. Ora il ciclo interno viene con­trol­la­to finché la sua con­di­zio­ne di ter­mi­na­zio­ne non diventa “false”. Quindi il programma passa nuo­va­men­te al ciclo esterno.

La dif­fe­ren­za tra for e while in Java

Oltre al ciclo while in Java, pre­sen­ta­to qui, e a quello do-while, esiste anche il ciclo for. A prima vista, è simile al ciclo while di Java, in quanto ripete un codice finché la con­di­zio­ne di ter­mi­na­zio­ne definita non diventa “false”. A dif­fe­ren­za della variante while, tuttavia, il ciclo for ha ancora una variabile di ese­cu­zio­ne che viene ini­zia­liz­za­ta prima della con­di­zio­ne di ter­mi­na­zio­ne.

Vai al menu prin­ci­pa­le