English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo tutorial, impareremo a utilizzare i cicli while e do...while in Java con esempi e anche come funziona il ciclo while nel programmazione informatica
Nel programmazione informatica, i cicli sono utilizzati per ripetere un blocco di codice specifico fino a quando non si soddisfa una condizione specifica (l'espressione di test è falsa). Ad esempio:
Immagina, dobbiamo stampare una frase 50 volte sulla schermata. Bene, possiamo farlo utilizzando la statement print 50 volte (senza utilizzare il ciclo). E se dobbiamo stampare un milione di volte la stessa frase? Dobbiamo utilizzare un ciclo. Utilizzando un ciclo, possiamo scrivere una sola volta la statement print e eseguire quante volte ci serve.
Questo è solo un esempio semplice che mostra l'importanza del ciclo nel programmazione informatica. In Java ci sono 3 tipi di cicli:for cicloe il ciclo while e il ciclo do-while.
La sintassi del ciclo while in Java è:
while (testExpression) { // Codice nel corpo del ciclo while {}
Nella grammatica sopra, il contenuto tra le parentesi,TestL'espressione (testExpression) è un'espressione booleana. Se il risultato del calcolo dell'espressione di test (testExpression) è true,
Le istruzioni all'interno del ciclo while vengono eseguite.
Poi, l'espressione di test (testExpression) viene valutata di nuovo.
Questo processo continua fino a quando l'espressione di test viene valutata come false. Se il risultato del calcolo dell'espressione di test è false,
Il ciclo while viene terminato.
// Il programma stampa 10 linee class Loop { public static void main(String[] args) { int i = 1; while (i <= 10) { System.out.println("Linea " + i); ++i; {} {} {}
Output:
Linea 1 Linea 2 Linea 3 Linea 4 Linea 5 Linea 6 Linea 7 Linea 8 Linea 9 Linea 10
Nell'esempio sopra, abbiamo un'espressione di test (i <= 10). Controlla se il valore di i è minore o uguale a 10.
All'inizio, il valore di i in questo punto è 1. Pertanto, il risultato del calcolo dell'espressione di test (testExpression) è true. Di conseguenza, verranno eseguite le istruzioni all'interno del ciclo while.
Notare le istruzioni all'interno del ciclo while,
++i;
Questa istruzione aggiunge 1 al valore di i in ogni iterazione. Dopo 10 iterazioni, il valore di i è 11. Poi l'espressione di test (i <= 10) diventa false, il ciclo while termina.
Per ulteriori informazioni sui test delle espressioni e sul loro modo di valutazione, visitareOperatori relazionali JavaeOperatori logici Java.
// Scrivere il codice per trovare la somma dei numeri naturali tra 1 e 100. class AssignmentOperator { public static void main(String[] args) { int sum = 0, i = 100; while (i != 0) { sum += i; // È equivalente a sum = sum + i; --i; {} System.out.println("Sum = " + sum); {} {}
Output:
Sum = 5050
Qui abbiamo due variabili chiamate sum, i, con valori iniziali rispettivamente 0 e 100.
In ogni iterazione del ciclo while,
Assegnare un valore alla variabile sum: sum + i
Il valore di i viene ridotto di 1
Il ciclo continua fino a quando il valore di i è uguale a 0.
1ma ripetizione: i = 100, sum = 0+100 = 100, contemporaneamente --i = 99 2ma ripetizione: i = 99, sum = 100+99 = 199, contemporaneamente --i = 98 3ma ripetizione: i = 98, sum = 199+98 = 297, contemporaneamente --i = 97 ... .. ... ... .. ... 99ma ripetizione: i = 2, sum = 5047+2 = 5049, contemporaneamente --i = 1 100ma ripetizione: i = 1, sum = 5049+1 = 5050, contemporaneamente --i = 0
Il ciclo do...while è simile al ciclo while, ma c'è una differenza chiave: il corpo del ciclo viene eseguito una volta prima di controllare l'espressione di test.
Ecco la sintassi del ciclo do...while.
do { //Codice nel corpo del ciclo do...while } while (testExpression);
Il corpo del ciclo do...while viene eseguito una volta (prima di controllare l'espressione di test). Solo così l'espressione di test verrà controllata.
Se l'espressione di test viene calcolata come true, viene eseguito il codice del corpo del ciclo e viene nuovamente calcolata l'espressione di test. Questo processo continua fino a quando l'espressione di test viene calcolata come false.
Quando l'espressione di test è false, il ciclo do..while termina.
Il seguente programma calcola la somma dei numeri inseriti dall'utente fino a quando l'utente non inserisce 0.
Per accettare l'input dell'utente, abbiamo utilizzato l'oggetto Scanner. Per ulteriori informazioni su Scanner, visitaJava Scanner.
import java.util.Scanner; class Sum { public static void main(String[] args) { Double number, sum = 0.0; //Crea un oggetto Scanner Scanner input = new Scanner(System.in); do { //Accetta l'input dell'utente System.out.print("Inserisci un numero: "); number = input.nextDouble(); sum += number; } while (number != 0.0); //Espressione di test System.out.println("Sum = " + sum); {} {}
Output:
Inserisci un numero: 2.5 Inserisci un numero: 23.3 Inserisci un numero: -4.2 Inserisci un numero: 3.4 Inserisci un numero: 0 Sum = 25.0
Quando si utilizzano cicli, dobbiamo sempre essere cauti. Questo perché se configuriamo in modo errato l'espressione di test, rendendola mai falsa, i cicli while e do...while continueranno a eseguire in modo infinito.
Questo è ciò che si chiama ciclo while infinito e do...while. Ad esempio:
//Ciclo while infinito while (true) { //Corpo del ciclo while {}
Ecco un altro esempio
//Ciclo while infinito int i = 100; while (i == 100) { System.out.print("Hey!"); {}
Il funzionamento del ciclo do...while infinito è simile a quello del ciclo while.