Während einer Bedingung Looping ist wahr in C ++

Zweig Aussagen ermöglicht es Ihnen, den Fluss eines C ++ Programmausführung nach unten einen Pfad oder eine andere zu lenken. Das ist eine große Verbesserung, aber immer noch nicht genug in voller Stärke, Programme zu schreiben.

Betrachten Sie das Problem der Computeranzeige zu aktualisieren. Der typische PC muss aktualisiert werden weit über tausend Pixel für jede Zeile, wie es ein Bild malt von links nach rechts. Er wiederholt diesen Vorgang für jede der tausend oder so Zeilen auf dem Display. Es tut dies, indem die gleiche kleine Anzahl von Befehlen ausführt, millionenfach - einmal für jedes Pixel.

Die einfachste Form der Schleifen-Anweisung ist die während Schleife. Hier ist, was die während Schleife sieht so aus:

while (Bedingung) {// ... wiederholt solange Bedingung wahr ist ausgeführt}

Das Bedingung getestet. Diese Bedingung könnte sein, wenn var> 10 oder wenn var1 == var2 oder jede andere Ausdruck könnten Sie so lange denken, wie sie einen Wert zurückgibt von wahr oder falsch. Wenn die Bedingung ist, wahr, die Anweisungen innerhalb der geschweiften Klammern werden ausgeführt. Nach Erhalt der geschlossenen Klammer zu begegnen, Steuerung C ++ kehrt zum Anfang zurück, und der Prozess beginnt von vorne.

Wenn die Bedingung ist, falsch, geht die Steuerung zu der ersten Anweisung nach der geschlossenen Klammer. Der Effekt ist, dass die C ++ Code innerhalb der geschweiften Klammern solange wiederholt ausgeführt, wie die Bedingung wahr.

Wenn die Bedingung waren wahr das erste Mal, was würde es sein falsch in der Zukunft? Betrachten Sie das folgende Beispiel-Programm:

// WhileDemo - Eingang eine Schleifenzählung. Schleife während // Ausgeben astring arg Anzahl. # Include #einschließen #einschließen using namespace std-int main (int nNumberofArgs, char * pszArgs []) {// Eingang der Schleife countint nLoopCount-cout lt; lt; "Geben Sie Zählschleife:" -cin >> nLoopCount - // jetzt Schleife, dass viele timeswhile (nLoopCount> 0) {nLoopCount = nLoopCount - 1-cout lt; lt; "Nur" lt; lt; nLoopCountlt; lt; "Schleifen zu gehen" lt; lt; Endl -} // warten, bis der Benutzer vor dem Beenden Programm bereit ist, // damit der Benutzer das Programm resultscout zu sehen lt; lt; "Drücken Sie die Eingabetaste, um fortzufahren ..." lt; lt; Endl-cin.ignore (10, ' n') - cin.get () - Rückkehr 0-}

WhileDemo beginnt, indem eine Schleifenzählung von dem Benutzer abgefragt, die in der Variable speichert nLoopCount. Das Programm führt dann eine während Schleife. Das während erste Tests nLoopCount. Ob nLoopCount größer als 0 ist, geht das Programm in den Körper der Schleife (die Körper ist der Code zwischen den geschweiften Klammern), wo sie dekrementiert nLoopCount um 1 und gibt das Ergebnis an die Anzeige.

Das Programm kehrt dann zum Anfang der Schleife zu testen, ob nLoopCount ist nach wie vor positiv.

Wenn sie ausgeführt werden, das Programm WhileDemo gibt die in diesem nächsten Schnipsel gezeigten Ergebnissen. Hier wird eine Schleifenzählung von 5 eingegeben. Das Ergebnis ist, dass das Programm fünf Mal Schleifen, jedes Mal einen Countdown ausgibt:

Geben Sie Schleifenzählung: 5Nur noch 4 Schleifen goOnly 3 Schlaufen zu goOnly 2 Schleifen zu goOnly 1 Schleifen goOnly 0 Schleifen goPress eingeben, um fortzufahren ...

Wenn der Benutzer eine negative Schleifenzahl eintritt, überspringt das Programm die Schleife vollständig. Das ist, weil die angegebene Bedingung ist nie wahr, so tritt die Steuerung nie die Schleife. Zusätzlich, wenn der Benutzer eine sehr große Zahl eingibt, kehrt das Programm für eine lange Zeit vor dem Abschluss.

Eine separate, weniger häufig verwendete Version des während Schleife als das bekannte machen # 133- während erscheint identisch mit Ausnahme der Zustand, bis das Ende der Schleife nicht getestet wird:

do {// ... die Innenseite der Schleife} while (Bedingung) -

Weil die Bedingung nicht bis zum Ende der Prüfung die Körper des machen # 133- während ist immer mindestens einmal ausgeführt.

Die Bedingung wird geprüft, nur am Anfang der während Schleife oder am Ende der do # 133- während Schleife. Auch wenn die Bedingung nicht mehr zu sein, wahr zu einem bestimmten Zeitpunkt während der Ausführung der Schleife nicht verlassen Steuerung nicht die Schleife, bis die Bedingung erneut getestet wird.

Menü