Cicli Java

Cicli Java
Provalo su GfG Practice Progressi

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:

Ciclo whileDiagramma 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).

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:

Ciclo "do while".Diagramma di flusso del ciclo while
  • Il ciclo While inizia con il controllo della condizione booleana. Se restituisce true, vengono eseguite le istruzioni del corpo del ciclo, altrimenti viene eseguita la prima istruzione successiva al ciclo. Per questo motivo è chiamato anche Loop di controllo dell'ingresso
  • Una volta che la condizione viene valutata come vera, vengono eseguite le istruzioni nel corpo del ciclo. Normalmente le istruzioni contengono un valore di aggiornamento per la variabile elaborata per l'iterazione successiva.
  • Quando la condizione diventa falsa il ciclo termina segnando la fine del suo ciclo di vita.

3. Ciclo "fai-mentre".

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?

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.

per ogni ciclo

Quando elabori tutti gli elementi della raccolta

Gestito internamente

NO

Articoli correlati:

  • per ciclo
  • ciclo while
  • ciclo "fai-mentre".
Crea quiz