Strutture di controllo in Java

1. Panoramica

Nel senso più elementare, un programma è un elenco di istruzioni. Le strutture di controllo sono blocchi di programmazione che possono cambiare il percorso che intraprendiamo attraverso quelle istruzioni.

In questo tutorial, esploreremo le strutture di controllo in Java.

Esistono tre tipi di strutture di controllo:

  • Rami condizionali, che utilizziamo per scegliere tra due o più percorsi. Esistono tre tipi in Java: if / else / else if , operatore ternario e switch .
  • Cicli che vengono utilizzati per scorrere più valori / oggetti ed eseguire ripetutamente blocchi di codice specifici. I tipi di ciclo di base in Java sono for , while e do while .
  • Dichiarazioni ramificate, che vengono utilizzate per alterare il flusso di controllo nei cicli. Esistono due tipi in Java: interrompi e continua .

2. If / Else / Else If

L' istruzione if / else è la più basilare delle strutture di controllo, ma può anche essere considerata la base stessa del processo decisionale nella programmazione.

Sebbene if possa essere utilizzato da solo, lo scenario d'uso più comune è scegliere tra due percorsi con if / else :

if (count > 2) { System.out.println("Count is higher than 2"); } else { System.out.println("Count is lower or equal than 2"); }

Teoricamente, possiamo concatenare o annidare all'infinito blocchi if / else ma questo danneggerà la leggibilità del codice, ed è per questo che non è consigliato.

Esploreremo dichiarazioni alternative nel resto di questo articolo.

3. Operatore ternario

Possiamo usare un operatore ternario come espressione abbreviata che funziona come un'istruzione if / else .

Vediamo di nuovo il nostro esempio if / else :

if (count > 2) { System.out.println("Count is higher than 2"); } else { System.out.println("Count is lower or equal than 2"); }

Possiamo rifattorizzare questo con un ternario come segue:

System.out.println(count > 2 ? "Count is higher than 2" : "Count is lower or equal than 2");

Sebbene ternario possa essere un ottimo modo per rendere il nostro codice più leggibile, non è sempre un buon sostituto di if / else.

4. Interruttore

Se abbiamo più casi tra cui scegliere, possiamo utilizzare un'istruzione switch .

Vediamo di nuovo un semplice esempio:

int count = 3; switch (count) { case 0: System.out.println("Count is equal to 0"); break; case 1: System.out.println("Count is equal to 1"); break; default: System.out.println("Count is either negative, or higher than 1"); break; }

Tre o più istruzioni if / else possono essere difficili da leggere. Come una delle possibili soluzioni alternative, possiamo usare switch, come visto sopra.

Inoltre, tieni presente che lo switch ha limiti di portata e di input che dobbiamo ricordare prima di utilizzarlo.

5. Loop

Usiamo i loop quando abbiamo bisogno di ripetere lo stesso codice più volte in successione.

Vediamo un rapido esempio di tipo di cicli for e while comparabili :

for (int i = 1; i <= 50; i++) { methodToRepeat(); } int whileCounter = 1; while (whileCounter <= 50) { methodToRepeat(); whileCounter++; } 

Entrambi i blocchi di codice sopra chiameranno methodToRepeat 50 volte.

6. Pausa

Dobbiamo usare break per uscire in anticipo da un loop.

Vediamo un rapido esempio:

List names = getNameList(); String name = "John Doe"; int index = 0; for ( ; index < names.length; index++) { if (names[index].equals(name)) { break; } }

In questo caso, stiamo cercando un nome in un elenco di nomi e vogliamo smettere di cercare una volta trovato.

Un ciclo normalmente andrebbe completato, ma abbiamo usato break here per cortocircuirlo ed uscire presto.

7. Continua

In poche parole, continuare significa saltare il resto del ciclo in cui ci troviamo:

List names = getNameList(); String name = "John Doe"; String list = ""; for (int i = 0; i < names.length; i++) { if (names[i].equals(name)) { continue; } list += names[i]; }

Qui, saltiamo l'aggiunta dei nomi duplicati nell'elenco.

Come abbiamo visto qui, break and continue può essere utile durante l'iterazione, anche se spesso possono essere riscritti con istruzioni return o altra logica.

8. Conclusione

In questo rapido articolo, abbiamo appreso cosa sono le strutture di controllo e come utilizzarle per gestire il controllo del flusso nei nostri programmi Java.

Tutto il codice presentato in questo articolo è disponibile su GitHub.