So erstellen Sie Endlosschleifen in C-Programmierung

Vorsicht vor dem Endlos-Schleife! Wenn ein C-Programm in eine Endlosschleife eintritt, entweder es spuckt Ausgang immer und immer ohne Ende oder es sitzt eng und tut nichts. Nun, es ist zu tun, was Sie es bestellt haben zu tun, was immer zu sitzen und spinnen.

Manchmal wird diese Einrichtung mit Absicht getan, aber meistens kommt es wegen der Programmierer Fehler. Und die Art und Weise Schleifen eingestellt sind in C auf, es ist einfach zu unbeabsichtigt Schleife Ad infinitum.

Ein üblicher Weg, um eine Endlosschleife zu machen zeigt eine gemeinsame Endlosschleife, die ein Programmierfehler, kein Syntaxfehler.

Ein üblicher Weg, eine Endlosschleife zu machen

# include int main () {int x-for (x = 0-x = 10-x = x + 1) {puts ( "Was sind Sie lookin?") -} return (0) -}

Das Problem mit dem Code in einen gemeinsamen Weg in eine Endlosschleife zu machen, ist, dass die Exit-Bedingung ist für Aussage ist immer wahr: x = 10. Lesen Sie es wieder, wenn Sie es nicht das erste Mal verfing, oder einfach nur 9-18 tun Übung.

Übung 1: Geben Sie den Quellcode für einen gemeinsamen Weg in eine Endlosschleife zu machen. Speichern, zu bauen und laufen.

Der Compiler kann man über die Konstante TRUE Bedingung in der for-Anweisung zu warnen. Code :: Blocks sollte das tun, und andere Compiler würde, wenn man seine Fehlerprüfung ratcheted. Andernfalls erstellt das Programm und läuft - unendlich.

  • Um aus einer Endlos-Schleife, drücken Sie Strg + C auf der Tastatur. Dieser Trick funktioniert nur für Konsolen-Programme, und es kann nicht immer funktionieren. Wenn dies nicht der Fall, müssen Sie den Prozess Amok laufen zu töten.

  • Endlosschleifen werden auch bezeichnet als Endlosschleifen.

Wie Schleife endlos aber absichtlich

Gelegentlich muss ein Programm in eine Endlosschleife. Beispielsweise kann ein Mikrocontroller, ein Programm zu laden, die so lange läuft, wenn die Vorrichtung eingeschaltet ist. Wenn Sie eine solche Schleife absichtlich in C aufgebaut, einer der beiden Aussagen verwendet wird:

für(--)

Lesen Sie diese Aussage als # 147-für immer # 148- keine Elemente in den Klammern, aber immer noch mit den erforderlichen zwei Semikolons, wiederholt die for-Schleife ewig -., Selbst nachdem die Kühe nach Hause kommen. Hier ist die while-Schleife äquivalent:

while (1)

Der Wert in den Klammern muss nicht unbedingt 1- irgendwelche Wahr oder nicht-Null-Wert Werke. Wenn die Schleife absichtlich endlos ist jedoch die Möglichkeit, die meisten Programmierer den Wert auf 1 einfach selbst zu dokumentieren, dass sie wissen, was los ist.

Wie aus einer Schleife zu brechen

Jede Schleife kann sofort beendet werden - einschließlich Endlosschleifen - unter Verwendung einer break-Anweisung innerhalb der Wiederholungsgruppe der Schleife von Anweisungen. Bei Bruch auftritt, Looping stoppt und die Programmausführung nimmt mit der nächsten Anweisung nach der Schleife der letzte geschweifte Klammer auf. Get Me Outta Here! zeigt den Prozess.

GET ME Outta hier!

# include int main () {int count-count = 0-while (1) {printf ( "% d", count) -count = count + 1-if (count> 50) Break-} putchar ( ' n ') -return (0) -}

Die while-Schleife in Zeile 8 ist so konfiguriert, immer weiter zu gehen, aber die, wenn der Test bei 12 Linie kann es zu stoppen: Wenn der Wert der Zählwert größer als 50 ist die break-Anweisung (siehe Zeile 13) ausgeführt wird und die Schleife stoppt.

Übung 2: Erstellen und ein neues Projekt mit dem Source-Code ausführen Me von Get Outta Here!

Übung 3: Geben Sie den Quellcode Me von Get Outta Here! so dass eine endlose Schleife für anstelle eines endlosen verwendet wird, während Schleife.

Sie brauchen nicht eine Endlosschleife zu konstruieren, um die break-Anweisung zu verwenden. Sie können aus jeder Schleife brechen. Wenn Sie das tun, wird die Ausführung mit der ersten Anweisung nach der abschließenden geschweiften Klammer-Schleife.

Wie können Sie eine Schleife mit C vermasseln

Es gibt zwei Möglichkeiten, um Chaos eine Schleife auf. Diese Problemstellen auftauchen für Anfänger und Profis gleichermaßen. Der einzige Weg, diese Flecken zu vermeiden, ist ein wachsames Auge zu halten, so dass Sie 'em schnell zu erkennen.

Der erste Patzer-up ist die Angabe einer Bedingung, die nie zum Beispiel Met- werden können:

for (x = 1-x == 10 x = x + 1)

In der vorangehenden Zeile, ist die Ausgangsbedingung falsch, bevor die Schleife einmal dreht, so wird die Schleife nie ausgeführt. Dieser Fehler ist fast so heimtückisch wie einen Zuweisungsoperator (ein einzelnes Gleichheitszeichen) anstelle der Verwendung # 147-gleich # 148- Operator (wie gerade dargestellt).

Ein weiterer häufiger Fehler ist misplacing das Semikolon, wie in

für (x = 1-XLT; 14-x = x + 1) - {puts (# 147-Sore Schulterchirurgie # 148 -) -}

Da die erste Zeile, die for-Anweisung, in einem Strichpunkt endet, glaubt der Compiler, dass die Leitung die gesamte Schleife ist. Der leere Code wiederholt 13-mal, das ist, was für Aussage diktiert. Die puts () Anweisung wird dann einmal ausgeführt.

Diese Schurken Semikolons kann frustrierend sein!

Das Problem ist schlimmer mit While-Schleifen, weil die do-while-Struktur erfordert ein Semikolon nach dem letzten while-Anweisung. In der Tat, dass bestimmte Semikolon zu vergessen ist auch eine Quelle des Leids. Für eine traditionelle while-Schleife, tun Sie das nicht:

während (XLT; 14) - {puts (# 147-Sore Schulterchirurgie # 148 -) -}

Die stark dumme Sache über diese Semikolon Fehler ist, dass der Compiler sie nicht fangen. Er ist der Ansicht, dass Ihre Absicht ist es, eine Schleife ohne Anweisungen zu haben. So etwas ist möglich.

EIN FÜR LOOP OHNE BODY

# include int main () {int x-for (x = 0-XLT; 10-x = x + 1, printf ( "% d n", x)) - return (0) -}

In dem Beispiel in A gezeigten foder Loop Kein Körper ist das Semikolon in der Zeile nach der for-Anweisung platziert (siehe Linie 8 in A foder Schleife mit No Body). Das zeigt Vorsatz.

Sie können sehen, dass zwei Elemente in der die Klammern Aussage gestellt werden, die beide durch ein Komma getrennt. Das ist vollkommen legal, und es funktioniert, aber es ist nicht gut lesbar ist.

Übung 4: Geben Sie den Quellcode von A foder Loop kein Körper in Ihren Editor. Erstellen und ausführen.

Obwohl Sie Elemente für Erklärung der Klammern in einem laden kann, ist es selten, und auf jeden Fall nicht zu empfehlen, um ihrer selbst willen Lesbarkeit.

Menü