Controllare i cicli con break e continue

26 febbraio 2016

Nelle ultime lezioni abbiamo introdotti i cicli ed abbiamo visto come eseguirli finché una certa espressione è vera (for, while, do...while) oppure finché non terminano gli elementi contenuti in un array (foreach).

Quello che però non abbiamo detto finora è che ci sono due costrutti che consentono di interrompere un ciclo oppure di saltare il resto del ciclo corrente e riprendere l’esecuzione dalla verifica della condizione di controllo dall’inizio dell’iterazione successiva.

Stiamo parlando delle strutture di controllo break e continue.

Break

Il costrutto break consente di interrompere un ciclo e di uscirne senza continuare le iterazioni rimanenti. È molto utile, ad esempio, quando si cerca un valore all’interno di un array: nel momento in cui l’elemento viene trovato non è necessario continuare con altri gli elementi. Vediamo un esempio:

$atleti = array( 'Simone', 'Josephine', 'Giuseppe', 'Gabriele' );

$posizione_di_arrivo = 0;
foreach ($atleti as $posizione => $nome) {
    if ($nome == 'Josephine') {
        $posizione_di_arrivo = $posizione + 1;

        break;
    }
}

echo "Josephine è arrivata in posizione numero " . $posizione_di_arrivo;

Nell’esempio appena proposto vogliamo visualizzare la posizione di arrivo dell’atleta Josephine. Quello che facciamo è utilizzare il costrutto foreach per ciclare su tutti gli atleti e verifichiamo per ognuno di essi il nome.

Non appena troviamo l’utente che stiamo cercando non è più necessario continuare le iterazioni per i restanti atleti ma possiamo interrompere l’esecuzione del ciclo. Per raggiungere il nostro scopo è sufficiente utilizzare la struttura di controllo break.

Il costrutto break è utile però anche in un’altra circostanza che abbiamo analizzato in una delle lezioni precedenti, quella relativa alla utilizzo del costrutto condizionale switch. In questo caso, infatti, è utilizzato per uscire dal costrutto nel momento in cui uno dei casi corrisponde al valore che stiamo verificando in quel momento. Vediamo anche in questo caso un esempio:

$posizione_di_arrivo = 1;
switch ($posizione_di_arrivo) {
    case 1:
        echo "Sei arrivato primo!";
        break;
    case 2:
        echo "Sei arrivato secondo!";
        break;
    case 3:
        echo "Sei arrivato terzo!";
        break;
    default:
        echo "Spiacente, non sei sul podio!";
        break;
}

Una volta che abbiamo trovato il valore corrispondente alla posizione di arrivo dell’atleta non è necessario valutare ulteriori casi dello switch e possiamo uscire dal costrutto.

Continue

La struttura di controllo continue è utilizzata per saltare il ciclo corrente e proseguire con le iterazioni successive previste. Vediamo un esempio per capire un po’ più a fondo di cosa stiamo parlando:

for ($posizione=1; $posizione <= 10; $posizione++) {
    if ($posizione % 2 == 1) {
        continue;
    }

    echo "Il numero " . $posizione . " è un numero pari\n";
}

Nell’esempio precedente vogliamo stampare a schermo soltanto i numeri pari contenuti all’interno del ciclo for. Abbiamo visto in una lezione precedente come utilizzare l’operatore aritmetico modulo per determinare il resto di una divisione.

Nel nostro esempio, quindi, nel caso in cui un valore del ciclo non è divisibile per 2, saltiamo l’iterazione e passiamo direttamente a quella successiva.

Tutte le lezioni

1 ... 19 20 21 ... 49

Se vuoi aggiornamenti su Controllare i cicli con break e continue inserisci la tua e-mail nel box qui sotto:
Tags:
 
X
Se vuoi aggiornamenti su Controllare i cicli con break e continue

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy