Istruzioni di Salto
Le istruzioni di salto (jump statements) trasferiscono incondizionatamente il controllo a un’altra sezione della funzione. Corrispondono da vicino alle istruzioni di salto (jump/branch) del linguaggio Assembly.
L’istruzione goto
Section titled “L’istruzione goto”L’istruzione goto trasferisce l’esecuzione del programma all’etichetta (label) specificata, all’interno della stessa funzione.
goto ERRORE; // Salta alla label 'ERRORE'
printf("Questo non verrà stampato\\n");
ERRORE: printf("Si è verificato un problema!\\n");Le istruzioni continue e break
Section titled “Le istruzioni continue e break”Queste istruzioni sono essenziali per avere maggior controllo all’interno dei cicli (for, while, do...while):
continue: Interrompe l’iterazione corrente e salta direttamente alla successiva valutazione della condizione del ciclo. Il codice che segue ilcontinuenel blocco viene ignorato per quel giro.break: Interrompe l’intero ciclo (o loswitchin cui si trova) e fa proseguire il programma con l’istruzione successiva al blocco.
for (int i = 0; i < 10; i++) { if (i == 3) continue; // Salta il 3 if (i == 7) break; // Ferma tutto a 7 printf("%d ", i);}// Stamperà: 0 1 2 4 5 6L’istruzione return
Section titled “L’istruzione return”La parola chiave return termina l’esecuzione della funzione corrente e restituisce il controllo alla funzione chiamante (il “caller”). Può restituire un valore, se la funzione lo richiede (es. return x + y;), oppure terminare semplicemente la funzione se questa è di tipo void (scrivendo solo return;).
💻 Esercizio Pratico
Section titled “💻 Esercizio Pratico”Pattern Cleanup con goto: Simula l’allocazione di due risorse (es. file). Se la seconda fallisce, usa goto error_file1; per saltare al codice che libera la prima risorsa.