Hem Personliga finanser Bryter ut ur ett oändligt loop i ditt C-språkprogram - dummies

Bryter ut ur ett oändligt loop i ditt C-språkprogram - dummies

Video: Föreläsning i Västerås 2019 - Sverige håller på att vakna! 2024

Video: Föreläsning i Västerås 2019 - Sverige håller på att vakna! 2024
Anonim

När du kommer in i programmeringsslingor i C-språket upptäcker du glädje och frustrationer av oändliga eller oändliga loopar. Dessa slingor fortsätter för alltid eftersom antingen programmeraren glömde att inkludera ett sätt att gå ur slingan eller utgångsförhållandet är bara aldrig träffat. Hur som helst är oändliga loopar en smärta.

Men ibland innehåller ett C-program en ändlös slinga med syfte. Denna typ av konstruktion kan verka udda, men grunden för många moderna program är att de sitter och roterar medan de väntar på att något ska hända. Slingan kan se ut så här:

för (;;) {check_Keyboard (); check_Mouse (); check_Events (); check_System ();}

Observera att villkoren inom parentesen efter att nyckelordet saknas, vilket är okej. Resultatet är en ändlös slinga där uttalandena kontrolleras upprepade gånger, en efter en: Programmet letar efter aktivitet någonstans. När aktiviteten hittas går programmet av och gör något intressant. Men för det mesta sitter programmet bara i den här typen av slinga och väntar på att något ska hända. (Den typiska ordbehandlaren kan utföra tusentals av dessa loopar eftersom den väntar mellan tangenttryckningar medan du skriver.)

Ange denna källkod och spara den på disken. Kompilera och kör sedan programmet:

#include int main () {char ch; sätter ("Typing Program"); sätter ("Typ bort:"); för (;;) {ch = getchar ();} returnera (0);}

Ja, du kan skriva. Och du kan se din text på skärmen. Men hur slutar du?

För att stoppa måste du bryta den ändlösa slingan, vilket kan göras genom att trycka på Ctrl + C. Men det är inte så som du vill att dina program ska fungera. I stället måste ett utgångstillstånd definieras för slingan, vilket är där break-sökordet kommer till spel.

C-språkutvecklare visste att i en del fall måste en slinga brytas baserat på förhållanden som inte kunde förutsägas eller ställas in i förklaringen. Så, i deras visdom, introducerade de brytningsordet.

Vilken paus gör det är att omedelbart avsluta en slinga (vilken C-slinga, inte bara för slingor). När datorn ser paus antas det bara att slingan är klar och fortsätter som om slingens slutförhållande uppfylldes:

#include int main () {char ch; sätter ("Typing Program"); sätter ("Skriv bort, tryck" ~ "för att avsluta:"); för (;;) {ch = getchar (); om (ch == '~') {break;}} returnera (0);}

Nu är ett utgångstillstånd definierat. Om jämförelsen i rad 12 kontrollerar om en ~ (tilde) tecken anges. Om så är fallet stoppas slingan av break-uttalandet.

Ändra källkoden så att den matchar det som just visats. Kompilera och springa. Nu kan du stoppa programmet genom att skriva ~ tecknet.

Observera att if-satsen även kan skrivas utan handtag:

om (ch == '~') brytas;

Den här raden kan vara lite mer läsbar än att använda fästen.

Bryter ut ur ett oändligt loop i ditt C-språkprogram - dummies

Redaktörens val

Nätverksenheter och tjänster Översikt för certifikatprov på CCENT-dummies

Nätverksenheter och tjänster Översikt för certifikatprov på CCENT-dummies

Du kan vara säker på att få några frågor om certifieringsexamen som testar din kunskap om typer av enheter och olika nätverkstjänster. Nedan följer några viktiga punkter att komma ihåg om enheter och tjänster: Nätverksenheter Hubb: Ett nav är en lag 1-enhet som används för att ansluta system tillsammans. När ...

OSI-modell för CCENT-certifieringsexamen - dummies

OSI-modell för CCENT-certifieringsexamen - dummies

Certifieringen certifierar dig kraftigt på OSI-modellen och olika protokoll och enheter som körs på varje lager av OSI-modellen. I följande tabell granskas OSI-modellen genom att ge dig en beskrivning av varje lager och exempel på protokoll och enheter som körs i varje lager. Layer Beskrivning Exempel 7. Applikation ...

OSI-modell för Cisco ICND1-certifieringsexamen - dummies

OSI-modell för Cisco ICND1-certifieringsexamen - dummies

Cisco ICND1-certifieringsexamen testa dig kraftigt på OSI modell och de olika protokoll och enheter som körs i varje lager av OSI-modellen. Följande granskar OSI-modellen genom att ge dig en beskrivning av varje lager och exempel på protokoll och enheter som körs i varje lager. Layer Beskrivning Exempel 7. Applikation ...

Redaktörens val

Hur man skalar på skifferelement i kantfilm - dummies

Hur man skalar på skifferelement i kantfilm - dummies

Skalar ett element i Adobe Edge Animate betyder i huvudsak att du kan ändra storleken på ett element samtidigt som dess proportioner hålls konsekventa om du vill. Du kan: Skalelement med verktyget Transform Skalaelement från Egenskaper-panelen Skalning med verktyget Transform Om du föredrar att använda en klicka-och-dra-metod för skalering ...

Hur man arbetar med mallar i Adobe Edge Animate - dummies

Hur man arbetar med mallar i Adobe Edge Animate - dummies

Mallar introducerades i Edge Animate 2. 0. Denna funktion tar bort nödvändigheten att återuppfinna hjulet varje gång du vill starta en ny komposition. Visst kan du alltid starta en ny komposition från en sparad fil, men Mallar gör att du kan starta ett nytt projekt som redan innehåller attribut och element som du vill ha.

Keyframes Modes in Edge Animation - dummies

Keyframes Modes in Edge Animation - dummies

Keyframe-verktyg i Edge Animate finns till höger om Play-kontrollerna. För att skapa nyckelfiler automatiskt måste du först aktivera nyckelbilder genom att klicka på den röda stoppklockans ikon. Som standard, när du startar en ny animering, är Stopwatch rött men har gråa linjer som löper genom det (som visat). Här är standardstatus för ...

Redaktörens val

Hur man tolkar figurativt språk för GED RLA-dummiesna

Hur man tolkar figurativt språk för GED RLA-dummiesna

Författare använder språk antingen bokstavligt eller figurativt . GED Reasoning Through Language Arts testet kommer att ha några frågor för att testa din förmåga att identifiera skillnaden. En NASA-vetenskapsman kan beskriva en asteroid väldigt bokstavligt: ​​består huvudsakligen av vatten, blandat med vissa stenar och mindre fasta fragment. Eller kan han eller hon skriva figurativt och beskriva ...

Hur (och var) ska schemalägga för att ta GED-dummiesna

Hur (och var) ska schemalägga för att ta GED-dummiesna

För att ta GED test, schemalägger du det baserat på tillgängliga testdatum. Varje stat eller lokalt testcenter ställer in sitt eget schema för GED-testet, vilket innebär att ditt tillstånd bestämmer hur och när du kan ta varje avsnitt av testet. Det bestämmer också hur ofta du kan återta en misslyckad ...

Hur man förbereder sig på GED RLA Extended Response - dummies

Hur man förbereder sig på GED RLA Extended Response - dummies

Uppsats för utvidgad respons på GED Reasoning Through Language Arts-testet kräver några mycket specifika färdigheter, allt från grammatik och korrekt språkanvändning till förståelse och analysförmåga. Om du någonsin har haft ett argument om vem som har det bästa laget eller vilken arbetsgivare är bättre, vet du redan hur man bedömer argument och svarar. ...