Rottura di un ciclo infinito in Your C Language Program

Quando si arriva in cicli di programmazione in linguaggio C, a scoprire le gioie e timori di infinito, o infinito, loop. Questi cicli continuano per sempre perché o il programmatore ha dimenticato di includere un modo per uscire dal loop o la condizione di uscita è solo non ha mai incontrato. In entrambi i casi, un circuito senza fine sono un dolore.

Ma a volte un programma C contiene un ciclo infinito di proposito. Questo tipo di costrutto può sembrare strano, ma la base di molti programmi moderni è che si siedono e gli effetti mentre aspettano che accada qualcosa. Il ciclo può apparire come questo:

for (;;)
{
check_Keyboard ();
check_Mouse ();
check_Events ();
check_System ();
}

Si noti che le condizioni all'interno delle parentesi dopo la parola chiave per la mancano, che va bene. Il risultato è un ciclo infinito in cui le istruzioni vengono controllati ripetutamente, uno dopo l'altro: Il programma è alla ricerca di qualche attività. Quando si trova l'attività, il programma si spegne e fa qualcosa di interessante. Ma la maggior parte del tempo, il programma si siede proprio in questo tipo di ciclo, in attesa di qualcosa accada. (Il processore parola tipica può eseguire migliaia di questi cicli, come l'attesa tra i tasti, come si sta digitando.)

Inserisci il codice sorgente e salvarlo su disco. Poi compilare ed eseguire il programma:

#include <stdio.h>
int main ()
{
char ch;
puts ("Programma Typing");
puts ("Tipo di distanza:");
for (;;)
{
ch = getchar ();
}
ritorno (0);
}

Sì, è possibile digitare. E si può vedere il testo sullo schermo. Ma come si fa a smettere?

Per fermare, bisogna rompere il ciclo infinito, che può essere fatto premendo Ctrl + C. Ma non è questo il modo in cui si desidera che i programmi di lavoro. Invece, una condizione di uscita deve essere definito per il ciclo, che è dove la parola pausa entra in gioco.

Gli sviluppatori del linguaggio C sapevano che, in alcuni casi, un ciclo deve essere rotto in base a condizioni che non potevano essere previste o allestita all'interno for. Così, nella loro saggezza, hanno introdotto la parola chiave pausa.

Che pausa fa è quello di smettere immediatamente un ciclo (ogni ciclo linguaggio C, non solo per i cicli). Quando il computer vede pausa, assume solo che il ciclo è fatto e continua come se condizione finale del ciclo è stato raggiunto:

#include <stdio.h>
int main ()
{
char ch;
puts ("Programma Typing");
puts ("Tipo di distanza; premere '~' per uscire:");
for (;;)
{
ch = getchar ();
if (ch == '')
{
break;
}
}
ritorno (0);
}

Ora una condizione di uscita è definito. Il confronto, se in linea di 12 verifica se viene inserito un (tilde) carattere ~. Se è così, il ciclo viene interrotto dal istruzione break.

Cambiare il codice sorgente in modo che corrisponda ciò che è stato appena mostrato. Compilare ed eseguire. Ora, è possibile interrompere il programma digitando il carattere ~.

Si noti che l'istruzione if può anche essere scritto senza le parentesi:

if (ch == '') break;

Questa linea può essere un po 'più leggibile rispetto all'utilizzo di parentesi graffe.