Video: TEDxTokyo - Hiroshi Ishii - The Last Farewell - [English] 2024
Quando inizi a programmare loop nel linguaggio C, scopri le gioie e i timori di infiniti, o infiniti , cicli. Questi cicli continuano per sempre perché il programmatore ha dimenticato di includere un modo per uscire dal ciclo o la condizione di uscita non è mai stata soddisfatta. In ogni caso, i loop infiniti sono un dolore.
Ma a volte un programma C contiene un loop infinito di proposito. Questo tipo di costrutto può sembrare strano, tuttavia la base di molti programmi moderni è che si siedono e girano mentre aspettano che accada qualcosa. Il ciclo potrebbe essere simile a questo:
per (;;) {check_Keyboard (); check_Mouse (); check_Events (); check_System ();}
Si noti che le condizioni tra parentesi dopo la parola chiave for sono mancanti, il che va bene. Il risultato è un ciclo infinito in cui le istruzioni vengono controllate ripetutamente, una dopo l'altra: il programma sta cercando attività da qualche parte. Quando viene trovata un'attività, il programma si attiva e fa qualcosa di interessante. Ma la maggior parte delle volte, il programma si trova in questo tipo di loop, in attesa che accada qualcosa. (Il tipico word processor può eseguire migliaia di questi loop mentre attende tra una sequenza di tasti mentre stai digitando.)
Inserire questo codice sorgente e salvarlo su disco. Quindi compilare ed eseguire il programma:
#include int main () {char ch; puts ("Programma di battitura"); puts ("Type away:"); for (;;) {ch = getchar ();} return (0);}
Sì, è possibile digitare. E puoi vedere il tuo testo sullo schermo. Ma come ti fermi?
Per interrompere, devi interrompere il ciclo infinito, che può essere fatto premendo Ctrl + C. Ma questo non è il modo in cui vuoi che i tuoi programmi funzionino. Invece, deve essere definita una condizione di uscita per il ciclo, che è il punto in cui entra in gioco la parola chiave break.
Gli sviluppatori di linguaggio C sapevano che, in alcuni casi, un ciclo deve essere interrotto in base a condizioni che non potevano essere previste o impostate all'interno dell'istruzione for. Quindi, nella loro saggezza, hanno introdotto la parola chiave break.
L'interruzione consiste nel chiudere immediatamente un ciclo (qualsiasi ciclo di linguaggio C, non solo per cicli). Quando il computer vede un'interruzione, presume solo che il ciclo sia terminato e continua come se la condizione finale del ciclo fosse soddisfatta:
#include int main () {char ch; puts ("Programma di battitura"); puts ("Digita away; premi '~' per uscire:"); for (;;) {ch = getchar (); if (ch == '~') {break;}} return (0);}
Ora è definita una condizione di uscita. Il confronto se nella riga 12 controlla se viene inserito un carattere ~ (tilde). In tal caso, il ciclo viene fermato dall'istruzione break.
Cambia il tuo codice sorgente in modo che corrisponda a ciò che è stato appena mostrato. Compilare e correre. Ora puoi fermare il programma digitando il carattere ~.
Si noti che l'istruzione if può anche essere scritta senza le parentesi:
if (ch == '~') break;
Questa linea potrebbe essere un po 'più leggibile rispetto all'utilizzo di parentesi graffe.