01. Istruzione continue
Nei cicli while e for è possibile utilizzare l'istruzione continue per passare all'iterazione successiva senza eseguire tutte le istruzioni previste nel ciclo.
Gli esempi riportati di seguito ne illustrano il funzionamento, mettendo in guardia da alcune insidie che possono capotare quando si utilizza il continue in un ciclo while.
Esempi
Il seguente programma stampa a video i numeri naturali minori di 100 che NON sono multipli di 7.
Nel ciclo for, in corrispondenza dei multipli di 7 rilevati tramite un'istruzione if, si utilizza l'istruzione continue per interrompere il ciclo corrente e iniziare un nuovo ciclo.
Si ribadisce che, in corrispondenza dei multipli di 7, la printf non viene eseguita perché il ciclo corrente si interrompe in corrispondenza del continue per passare al successivo ciclo.
Nel for, all'inizio di ogni nuova iterazione, si aggiornano le variabili presenti come terzo parametro dell'istruzione (in questo esempio viene eseguita l'istruzione i++).
#include <stdio.h>
int main()
{
int i;
for (i=1; i<100; i++){
if (i%7==0)
continue;
printf("%d ", i);
}
return 0;
}
L'istruzione continue nel ciclo while
L'istruzione continue è ammessa anche nel ciclo while tuttavia il suo utilizzo, in questo caso, nasconde alcune insidie.
A titolo di esempio è trasposto in modo "automatico" il programma precedente che fa uso del for in un programma che, al suo posto, utilizza il ciclo while.
Il risultato è un programma che va in loop e che quindi NON opera correttamente.
L'errore deriva dal fatto che, in corrispondenza di un nuovo ciclo susseguente all'istruzione continue, il contatore i non viene aggiornato.
Errato utilizzo di continue nel ciclo while:
#include <stdio.h>
int main()
{
int i;
i=1;
while(i<100){
if (i%7==0)
continue;
printf("%d ", i);
i++;
}
return 0;
}
Sito: 7ecnologie
Sezione: 08. C language
Capitolo: 02. Introduzione al C
Paragrafo: 09. Ciclo for
Approfondimento: 01. Istruzione continue
Indice dei capitoli: 00. Risorse - 01 Ambiente di sviluppo - 02. Introduzione al C - 03. Le librerie - 04. Tutorial - 05. Esercizi svolti - 98. Esercizi
Indice dei paragrafi: 01. Hello World - 02. Variabile di tipo int - 03. Input da tastiera - 04. Controllo condizionale if - 05. Operatori logici - 06. Ciclo while - 07. Operatore modulo - 08. Array - 09. Ciclo for - 10. Ciclo do/while - 11. Variabili di tipo float - 12. Funzione random() - 13. Impostazione del set di caratteri - 14. Definizione di funzioni - 15. Passaggio di parametri: gli array - 16. Variabili: visibilità e durata - 17. Il tipo char - 18. I file - 19. Funzioni matematiche
Indice degli approfondimenti: 01. Istruzione continue - 02. Cicli annidati: scomposizione in fattori - 03. Cicli annidati: screensaver