Breaking Out van een oneindige lus in uw C Language Program

Wanneer je in de programmering lussen in de taal C, ontdek je de vreugde en dreads van eindeloze, of oneindig, loops. Deze lussen blijven voor altijd omdat ofwel de programmeur vergeten om een ​​manier om af te sluiten van de lus of de afrit voorwaarde is gewoon nooit ontmoet bevatten. Hoe dan ook, eindeloze loops zijn een pijn.

Maar soms een C-programma bevat een eindeloze lus op doel. Dit soort constructie lijkt misschien vreemd, maar de basis van vele moderne programma's is dat ze gaan zitten en draaien terwijl ze wachten tot er iets gebeurt. De lus kan er als volgt uitzien:

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

Merk op dat de omstandigheden in de haakjes na de voor de zoekwoord ontbreken, dat is oke. Het resultaat is een eindeloze lus waarin de verklaringen herhaaldelijk worden gecontroleerd na elkaar: Het programma zoekt activiteit ergens. Wanneer activiteit wordt gevonden, het programma gaat uit en doet iets interessants. Maar de meeste van de tijd, het programma alleen maar zit dit soort lus, wachten tot er iets gebeurt. (De typische tekstverwerker kan duizenden van deze lussen presteren als het wacht tussen toetsaanslagen terwijl je aan het typen bent.)

Voer deze broncode en sla het op. Vervolgens compileren en uitvoeren van het programma:

#include <stdio.h>
int main ()
{
char ch;
puts ("Typing Programma");
puts ("Type weg:");
voor (;;)
{
l = getchar ();
}
return (0);
}

Ja, kunt u typt. En u kunt uw tekst op het scherm te zien. Maar hoe doe je stoppen?

Om te stoppen, moet je de eindeloze lus, die kan worden gedaan door te drukken op Ctrl + C te breken. Maar dat is niet de manier waarop u wilt dat uw programma's te werken. In plaats daarvan moet een exit voorwaarde te worden omschreven voor de loop, dat is waar het trefwoord pauze in het spel komt.

De taal C ontwikkelaars wist dat, in sommige gevallen moet een lus worden gespecificeerd op basis van omstandigheden die niet kon worden voorspeld of ingesteld binnen de voor de verklaring. Dus, in hun wijsheid, zij het trefwoord pauze geïntroduceerd.

Wat break doet is om onmiddellijk te stoppen een lus (elke taal C-lus, niet alleen voor loops). Wanneer de computer ziet break, het is gewoon gaat ervan uit dat de lus wordt gedaan en nog alsof de lus eindigt voorwaarde is voldaan:

#include <stdio.h>
int main ()
{
char ch;
puts ("Typing Programma");
puts ("type weg, druk op '~' om te stoppen:");
voor (;;)
{
l = getchar ();
if (ch == '~')
{
breken;
}
}
return (0);
}

Nu een exit aandoening wordt gedefinieerd. De als vergelijking in lijn 12 controles om te zien of een ~ (tilde) teken wordt ingevoerd. Als dat zo is, wordt de lus gestopt door de break-statement.

Wijzig uw broncode, zodat het overeenkomt met wat er net werd getoond. Compileren en uitvoeren. Nu, kunt u het programma stoppen door het intikken van de ~ karakter.

Merk op dat de if ook geschreven kan worden zonder dat de beugels:

if (ch == '~') break;

Deze lijn kan een beetje beter leesbaar dan het gebruik van beugels.