CodeGym /Java Blog /Random-IT /Java per il ciclo
John Squirrels
Livello 41
San Francisco

Java per il ciclo

Pubblicato nel gruppo Random-IT
Una volta Mark Zuckerberg ha notato che i computer sono davvero bravi a ripetere i comandi. Non è semplice per un essere umano, ci stiamo stancando di ripetere la stessa cosa molte volte di seguito, ma un computer può farlo milioni e miliardi di volte e non annoiarsi mai. Se provi a inviare saluti a tutti gli utenti di Facebook, non c'è nessun essere umano che abbia abbastanza giorni per farlo. Tuttavia puoi creare un computer per risolvere questo compito scrivendo poche righe di codice. Ecco come funzionano i loop. Ci permettono di non ripetere le stesse azioni di routine. Il ciclo più popolare in Java è il cosiddetto ciclo definito o ciclo for.

Come scrivere un ciclo for in Java? Ciclo For in generale

Il ciclo For esegue alcune istruzioni per un certo numero di volte. Ad esempio, scrivere cinquanta volte "Non devo essere così, ho-ho, ho" o inviare inviti a tutti i tuoi amici sono attività tipiche per questo tipo di loop. La sintassi della versione più comune del ciclo for:

for ([counter initialization]; [checking conditions]; [changing of the counter])
{
    //  statements
}
L'espressione di inizializzazione viene eseguita una volta, quindi viene valutata la condizione, che dovrebbe essere un'espressione booleana.
  • Quando inizia il ciclo, vengono eseguite le inizializzazioni.
  • Quando le condizioni risultano false, il nostro ciclo interrompe il suo lavoro.
Il contatore sta cambiando, di solito l'incremento (o il decremento) avviene dopo ogni iterazione attraverso il ciclo. È possibile saltare una qualsiasi delle tre espressioni del ciclo (inizializzazione, condizione di controllo, modifica del contatore). La condizione del ciclo viene verificata prima della fase successiva del ciclo. Se la condizione è falsa, il programma esce dal ciclo e continua con l'istruzione che segue il costrutto for. Qui abbiamo uno schema a blocchi del ciclo for. Ciclo For in Java - 2

Come usare il ciclo for in Java. Esempio semplice.

Ecco un particolare esempio di ciclo for Java. Scriviamo dieci volte "Ciao!" Stringa ogni volta che sarebbe dalla nuova riga con un numero di questa riga. Dovremmo ottenere il prossimo output:
  1. Ciao!
  2. Ciao!
  3. Ciao!
  4. Ciao!
  5. Ciao!
  6. Ciao!
  7. Ciao!
  8. Ciao!
  9. Ciao!
  10. Ciao!
Ecco il nostro programma Java che risolve questo problema:

public class ForExample {
   public static void main(String[] args) {
       for (int i = 0; i < 10; i++) {
           System.out.println(i + 1 + ". Hello!");
       }
   }
}

Come funziona?

Passaggio 1. Contatore i = 0. Il ciclo verifica la nostra condizione, i << 10, quindi vengono eseguite le istruzioni del ciclo. Stampa la frase "1. Hello!". 1 è una stringa i + 1 (perché abbiamo contato da zero, ma la prima riga è sempre la prima). Il contatore i viene incrementato. Ora, i = 1. Passaggio 2. Contatore i = 1. i < 10, quindi abbiamo una frase "2. Ciao!" e i + 1 = 2. … Passaggio 10. Contatore i = 9, abbiamo "10. Ciao!" e i viene incrementato a 10. Passaggio 11. Contatore i = 10. i < 10 ? No, è falso. Pertanto, il ciclo è terminato. Ciclo For in Java - 3

Ciclo while e ciclo for: differenze e similitudini

In Java il ciclo indefinito o il ciclo while viene eseguito continuamente se la condizione booleana diventa vera. La sintassi del ciclo while:

while (boolean condition)
       {
            loop statements...
       }
Abbastanza spesso puoi scegliere quale loop vuoi usare. A volte sono molto vicini e puoi usarli entrambi. Ad esempio, ecco il codice per la stessa attività (scrivendo dieci volte "Ciao!" con un numero della riga) scritto con ciclo while:

public class ForAndForEach {
   public static void main(String[] args) {
       int j = 0;  //  we use the counter this way 
       while (j < 10) {
           System.out.println(j + 1 + ". Hello!");
           j++;
       }
   }
}
Tuttavia, ai programmatori professionisti non piace molto il ciclo while e, ove possibile, prova a utilizzare il ciclo for.
PER MENTRE

Usiamo il ciclo for se già conosciamo il numero di iterazioni.

Usiamo il ciclo while se non conosciamo esattamente il numero di iterazioni.

L'inizializzazione, il controllo delle condizioni e la modifica del contatore sono già cuciti nella sintassi di un ciclo

Inizializzazione e controllo delle condizioni all'interno del ciclo. È inoltre possibile utilizzare counter nelle istruzioni.

Ciclo infinito per:


for(;;){
	System.out.println("working...");
}

Ciclo infinito mentre:


while(true){
	System.out.println("working...");
}

Come uscire da un ciclo for in java

Di solito un ciclo for funziona come un flusso e il modo naturale per uscire da un ciclo è quando una condizione assume un valore falso. Tuttavia ci sono due istruzioni di controllo che ti consentono di uscire dal ciclo prima di ottenere il valore falso di una condizione: break e continue.
  • break consente di uscire dal corpo del ciclo corrente come se la condizione del ciclo fosse valutata falsa.
  • continue fa saltare il ciclo al passaggio successivo (iterando il contatore) senza eseguire le istruzioni.
Risolviamo il prossimo problema usando break and continue. Abbiamo una serie di nomi e salutiamo tutti da questa serie tranne gli estranei. Quindi, se incontriamo una stringa "Stranger" durante il nostro loop, ne usciamo (andiamo via e fermiamoci per salutare chiunque altro).

public class ForBreakExample {
   public static void main(String[] args) {
       String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
       for (int i = 0; i < names.length; i++) {
//  how to break out of a for loop, java: check if we have any "Stranger" in  //  our array            
if (names[i].equals("Stranger")) {
               System.out.println("I don't chat with strangers");
               break;
           }
           System.out.println("Hello," + names[i]);
       }
   }
}
Il risultato dell'esecuzione del nostro programma è:

Hello,Mike
Hello,Dustin
I don't chat with strangers
Vedere? Siamo scappati dal giro prima di salutare Lucas e Will. Ora usiamo continue, solo per ignorare uno "Sconosciuto" ma rimanere all'interno del ciclo per salutare altri amici.

public class ForContinueExample {
   public static void main(String[] args) {
       String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
       for (int i = 0; i < names.length; i++) {
           if (names[i].equals("Stranger")) {
               System.out.println("I don't chat with strangers");
               continue;
           }
           System.out.println("Hello," + names[i]);
       }
   }
}
Il risultato è:

Hello,Mike
Hello,Dustin
I don't chat with strangers
Hello,Lucas
Hello,Will
Eccellente! Abbiamo salutato tutti gli amici, ma non abbiamo parlato con uno sconosciuto.

Versione migliorata del ciclo for o for-each

For-each è una sorta di ciclo for che viene utilizzato quando è necessario elaborare tutti gli elementi di un array o di una raccolta. In realtà, la stessa frase for-each non è usata in questo ciclo. La sintassi è la seguente:

for (type itVar: array)
{
    Block of operators;
}
Dove type è il tipo della variabile iterativa (uguale al tipo di dati dell'array), ItVar è il suo nome, array è l'array o può esserci un'altra struttura di dati, ad esempio ArrayList. Come puoi vedere, non esiste un contatore, la variabile di iterazione itera sugli elementi di un array o di una raccolta e non sui valori dell'indice. Quando viene eseguito un tale ciclo, alla variabile di iterazione viene assegnato in sequenza il valore di ciascun elemento dell'array o della raccolta, dopodiché viene eseguito il blocco di istruzioni (o operatore) specificato. Attenzione: il ciclo for-each può essere applicato agli array ea tutte le classi che implementano l'interfaccia java.lang.Iterable. Risolviamo lo stesso problema con saluti amici, ignorando gli estranei ("Stranger") ma questa volta usa il ciclo for-each.

public class ForEachExample {
   public static void main(String[] args) {
       String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
	//  for each loop, Java code
       for (String name : names) {
           if (name.equals("Stranger")) {
               System.out.println("I don't chat with strangers");
               continue;
           }
           System.out.println("hello, " + name);
       }
   }
}
Per rafforzare ciò che hai imparato, ti suggeriamo di guardare una lezione video dal nostro corso Java
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION