I cicli nella programmazione consentono di eseguire più volte una serie di istruzioni in base a una condizione. In Java esistono tre tipi di loop spiegati di seguito:
1. ciclo for
Il ciclo for viene utilizzato quando conosciamo il numero di iterazioni (sappiamo quante volte vogliamo ripetere un'attività). L'istruzione for include la condizione di inizializzazione e l'incremento/decremento in un'unica riga.
Esempio: Il programma Java riportato di seguito mostra un ciclo for che stampa i numeri da 0 a 10 in un'unica riga.
Java
// Java program to demonstrates the working of for loop import java.io.*; class Geeks { public static void main(String[] args) { for (int i = 0; i <= 10; i++) { System.out.print(i + ' '); } } }
Produzione
0 1 2 3 4 5 6 7 8 9 10
Sintassi:
for (inizializzazione; condizione; incremento/decremento) {
// codice da eseguire
}
L'immagine seguente mostra il diagramma di flusso di un ciclo for:
Diagramma di flusso del ciclo for- Condizione di inizializzazione : Qui inizializziamo la variabile in uso. Segna l'inizio di un ciclo for. È possibile utilizzare una variabile già dichiarata oppure una variabile può essere dichiarata locale solo per il loop.
- Condizione di prova: Viene utilizzato per testare la condizione di uscita per un loop. Deve restituire un valore booleano. È anche un ciclo di controllo dell'ingresso poiché la condizione viene verificata prima dell'esecuzione delle istruzioni del ciclo.
- Esecuzione della dichiarazione : Una volta che la condizione viene valutata come vera, vengono eseguite le istruzioni nel corpo del ciclo.
- Incremento/Decremento : Viene utilizzato per aggiornare la variabile per l'iterazione successiva.
- Terminazione del ciclo :Quando la condizione diventa falsa il ciclo termina segnando la fine del suo ciclo di vita.
Nota : Esiste un'altra forma del ciclo for nota come Migliorato per il ciclo o (per ogni ciclo).
Unità logica aritmetica
Ciclo for migliorato (per ciascuno)
Questo ciclo viene utilizzato per scorrere array o raccolte.
Esempio : Il programma Java seguente mostra un ciclo for avanzato (per ogni ciclo) per scorrere un array e stampare i nomi.
Java// Java program to demonstrate // the working of for each loop import java.io.*; class Geeks { public static void main(String[] args) { String[] names = { 'Sweta' 'Gudly' 'Amiya' }; for (String name : names) { System.out.println('Name: ' + name); } } }
Produzione
Name: Sweta Name: Gudly Name: Amiya
Sintassi:
per (variabile dataType: arrayOrCollection) {
// codice da eseguire
}
2. mentre Ciclo
Un ciclo while viene utilizzato quando vogliamo verificare la condizione prima di eseguire il corpo del ciclo.
Esempio: Il programma Java riportato di seguito mostra un ciclo while che stampa i numeri da 0 a 10 in un'unica riga.
Java// Java program to demonstrates // the working of while loop import java.io.*; class Geeks { public static void main(String[] args) { int i = 0; while (i <= 10) { System.out.print(i + ' '); i++; } } }
Produzione
0 1 2 3 4 5 6 7 8 9 10
Sintassi:
mentre (condizione) {
// codice da eseguire
}
L'immagine seguente mostra il diagramma di flusso di un ciclo while:
attore govinda
Il ciclo do- while garantisce che il blocco di codice venga eseguito almeno una volta prima di verificare le condizioni.
Esempio : Il programma Java riportato di seguito mostra un ciclo do- while che stampa i numeri da 0 a 10 in un'unica riga.
Java// Java program to demonstrates // the working of do-while loop import java.io.*; class Geeks { public static void main(String[] args) { int i = 0; do { System.out.print(i + ' '); i++; } while (i <= 10); } }
Produzione
0 1 2 3 4 5 6 7 8 9 10
Sintassi:
Fare {
// codice da eseguire
} mentre (condizione);
L'immagine seguente mostra il diagramma di flusso di un ciclo do- while:
Diagramma di flusso del ciclo do- while- do while il ciclo inizia con l'esecuzione dell'istruzione. Non viene effettuato alcun controllo di alcuna condizione per la prima volta.
- Dopo l'esecuzione delle istruzioni e l'aggiornamento del valore della variabile, la condizione viene verificata per verificare se il valore è vero o falso. Se viene valutato come true, viene avviata l'iterazione successiva del ciclo.
- Quando la condizione diventa falsa il ciclo termina segnando la fine del suo ciclo di vita.
- È importante notare che il ciclo do- while eseguirà le sue istruzioni almeno una volta prima che venga verificata qualsiasi condizione e quindi è un esempio di ciclo di controllo di uscita.
Errori comuni nel loop e come evitarli
Se i cicli non vengono utilizzati correttamente possono introdurre insidie e bug che influiscono sulla leggibilità e sulla funzionalità delle prestazioni del codice. Di seguito sono elencate alcune trappole comuni dei loop:
1. Cicli infiniti
Questo è uno degli errori più comuni durante l'implementazione di qualsiasi tipo di loop è che potrebbe non uscire mai, ovvero il loop viene eseguito per un tempo infinito. Ciò accade quando la condizione fallisce per qualche motivo.
Tipi di cicli infiniti:
- infinito per Loop
- infinito mentre Ciclo
Esempio: Qui entrambi gli esempi dimostrano i cicli infiniti.
Infinite For Loop// Java program to demonstrate // the infinite for loop import java.io.*; class Geeks { public static void main(String[] args) { for (int i = 0; i < 5; i--) { System.out.println( 'This loop will run forever'); } } }
Infinite While Loop // Java Program to demonstrate // the infinite while loop import java.io.*; class Geeks { public static void main(String[] args) { while(true) { System.out.println( 'Basic example of infinte loop'); } } }
Produzione: Quando esegui entrambi i codici sopra, riceverai l'errore TLE (Time Limit Exceeded).
2. Errori off-by-one
Gli errori Off-by-One vengono causati quando il ciclo viene eseguito una volta in più o in meno rispetto a quanto desiderato. Fondamentalmente accade quando la condizione del ciclo non è impostata correttamente.
Esempio : Il programma Java riportato di seguito mostra un errore Off-by-One in cui il ciclo viene eseguito 6 volte e ci aspettavamo che venisse eseguito 5 volte.
Java// Java Program to demonstrates Off-by-One Errors import java.io.*; class Geeks { public static void main(String[] args) { for (int i = 0; i <= 5; i++) { System.out.print(i + ' '); } } }
3. Modifica delle variabili del loop all'interno del loop
Quando modifichiamo la condizione del ciclo (come i) all'interno del ciclo, è possibile che il ciclo salti determinate iterazioni o si comporti in modi che non ci aspettavamo. Ciò potrebbe causare errori o comportamenti imprevisti.
Esempio : Il programma Java riportato di seguito dimostra la modifica della variabile del ciclo all'interno del ciclo che fa sì che il ciclo salti determinate iterazioni e si comporti in modo imprevisto.
Java// Java program demonstrates // modification in i variable import java.io.*; class Geeks { public static void main(String[] args) { for (int i = 0; i < 5; i++) { if (i == 2) { // Modifies the loop variable and skips // the next iteration i++; } System.out.println(i); } } }
4. Corpo del circuito vuoto
Un corpo di ciclo vuoto si verifica quando un ciclo viene scritto per eseguire l'iterazione ma non esegue alcuna operazione all'interno del ciclo. Eseguire un ciclo senza alcuna operazione utile al suo interno può creare confusione.
Esempio: Il programma Java seguente mostra il corpo del loop vuoto.
Java// Java program to demonstrates Empty loop body import java.io.*; class Geeks { public static void main(String[] args) { for (int i = 0; i < 10; i++) { // Empty body no operations } } }
Non verrà generato alcun output perché il corpo del ciclo è vuoto.
Tabella riepilogativa
Tipo di ciclo | Quando usarlo | Controllo delle condizioni | Viene eseguito almeno una volta? diagramma uml java |
|---|---|---|---|
per ciclo | Quando vuoi iterazioni esatte | Prima del corpo del loop Si chiama Entry-controlled. | NO |
ciclo while | Quando è necessario verificare prima le condizioni. | Prima del corpo del loop Si chiama Entry-controlled. | NO |
ciclo "fai-mentre". | Quando hai bisogno di correre almeno una volta | Dopo il corpo del loop Si chiama Controllato dall'uscita. | SÌ |
per ogni ciclo bias e varianza | Quando elabori tutti gli elementi della raccolta | Gestito internamente | NO |
Articoli correlati:
- per ciclo
- ciclo while
- ciclo "fai-mentre".