Video: Wormholes Explained – Breaking Spacetime 2025
Når du kommer inn i programmeringsløkker på C-språket, oppdager du gleder og frykt for uendelige, eller uendelige , looper. Disse løkkene fortsetter for alltid, fordi enten programmøren glemte å inkludere en måte å gå ut av løkken eller avslutningsforholdet er bare aldri møtt. Uansett er uendelige løkker en smerte.
Men noen ganger inneholder et C-program en endeløs sløyfe med formål. Denne typen konstruksjon kan virke merkelig, men grunnlaget for mange moderne programmer er at de sitter og spinner mens de venter på at noe skal skje. Sløyfen kan se slik ut:
for (;;) {check_Keyboard (); check_Mouse (); check_Events (); check_System ();}
Legg merke til at forholdene i parentes etter at søkeordet mangler, noe som er greit. Resultatet er en endeløs sløyfe der uttalelsene blir kontrollert flere ganger, den ene etter den andre: Programmet ser etter aktivitet et sted. Når aktiviteten er funnet, går programmet av og gjør noe interessant. Men mesteparten av tiden sitter programmet bare i denne typen loop og venter på at noe skal skje. (Den typiske tekstprosessoren kan utføre tusenvis av disse sløyfer som den venter mellom tastetrykk mens du skriver.)
Skriv inn denne kildekoden og lagre den på disk. Deretter kompilere og kjøre programmet:
#include int main () {char ch; setter ("Typing Program"); setter ("Type bort:"); for (;;) {ch = getchar ();} retur (0);}
Ja, du kan skrive. Og du kan se teksten din på skjermen. Men hvordan stopper du?
For å stoppe må du bryte den endeløse sløyfen, som kan gjøres ved å trykke Ctrl + C. Men det er ikke slik du vil at programmene skal fungere. I stedet må en utgangstilstand defineres for sløyfen, som er hvor bruddordet kommer inn i spill.
C-språkutviklerne visste at i noen tilfeller må en sløyfe brytes basert på forhold som ikke kunne forutsettes eller sattes opp i setningen. Så, i deres visdom, introduserte de break-søkeordet.
Hvilken pause gjør det er å straks slutte en sløyfe (en C-språkløkke, ikke bare for sløyfer). Når datamaskinen ser pause, antar det bare at sløyfen er ferdig og fortsetter som om sløyfens slutt tilstand ble oppfylt:
#include int main () {char ch; setter ("Typing Program"); setter ("Skriv bort; trykk '~' for å slutte:"); for (;;) {ch = getchar (); hvis (ch == '~') {break;}} returnere (0);}
Nå er en utgangstilstand definert. Hvis sammenligningen i Linje 12 kontrollerer for å se om et ~ (tilde) tegn er oppgitt. I så fall stoppes løkken av pauseoppsigelsen.
Endre kildekoden din slik at den samsvarer med det som bare ble vist. Kompilere og løp. Nå kan du stoppe programmet ved å skrive ~ tegnet.
Merk at if-setningen også kan skrives uten braces:
hvis (ch == '~') bryter;
Denne linjen kan være litt mer lesbar enn å bruke braces.
