während Loops in C ++

Ein grundlegendes Merkmal in C ++ Programmierung ist die Fähigkeit zur Schleife. C ++ bietet drei Schleifenkonstrukte in C ++. Das während Schleife hat folgendes Format:

while (Ausdruck) {// Sachen in einer Schleife zu tun} // hier weiterhin einmal Ausdruck falsch ist

Wenn ein Programm kommt auf ein während Schleife, wertet sie zuerst den Ausdruck in den Klammern. Wenn dieser Ausdruck wahr, dann geht die Steuerung auf die erste Zeile in der {. Wenn die Steuerung erreicht die }, das Programm kehrt zu dem Ausdruck zurück und beginnt von vorne. Die Steuerung geht weiter, um durch die Codein die Klammern bis Ausdruck auswertet falsch (Oder bis bricht etwas anderes die Schleife).

Folgende Fakultät Programm zeigt die während Schleife:

Factorial (N) = N * (N-1) * (N-2) * ... * 1 //// Factorial - berechnen faktoriellen die während // construct.//#include #einschließen #einschließen using namespace std-int main (int nNumberofArgs, char * pszArgs []) {// die Nummer eingeben, die Fakultäts ofint nZiel-cout zu berechnen lt; lt; "Dieses Programm berechnet faktorieller. N" lt; lt; "Geben Sie eine Zahl zu nehmen faktorieller von:" -cin >> nZiel - // mit einem Akkumulator beginnen, die 1DE nAccumulator = 1-int nValue = 1-while (nValue initialisiert wird lt; = nZiel) {cout lt; lt; nAccumulator lt; lt; "*" Lt; lt; nValue lt; lt; "Gleich" -nAccumulator = nAccumulator * nValue-cout lt; lt; nAccumulator lt; lt; Endl-nValue ++ -} // die resultcout anzeigen lt; lt; nZiel lt; lt; "Factorial ist" lt; lt; nAccumulator lt; lt; Endl - // warten, bis der Benutzer bereit ist, bevor Programm beendet // dem Benutzer zu ermöglichen, 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-}

Das Programm beginnt durch den Benutzer für einen Zielwert veranlasst. Das Programm liest diesen Wert in nZiel. Das Programm initialisiert dann beide nAccumulator und nValue 1 vor die Schleife eintritt.

(Achten Sie - das ist der interessante Teil.) Das Programm vergleicht nValue nach nZiel. Es sei angenommen, dass der Benutzer einen Zielwert von 5. Auf der ersten Schleife eingetreten war, wird die Frage, # 147-Ist 1 kleiner oder gleich 5? # 148- Die Antwort ist offensichtlich wahr, so geht die Steuerung in der Schleife.

Das Programm gibt den Wert von nAccumulator (1) und nValue (Auch 1), bevor die Multiplikation nAccumulator durch nValue und Speichern des Ergebnisses zurück in nAccumulator.

Die letzte Anweisung in der Schleife Schritten nValue 1 bis 2.

Als das geschehen war, geht die Steuerung wieder auf die während Anweisung, in nValue (Jetzt 2) im Vergleich zu nZiel (Noch 5). # 147-Is 2 weniger als oder gleich 5? # 148- klar, Echt- so fließt die Steuerung wieder in die Schleife. nAccumulator Es wird nun auf das Ergebnis gesetzt nAccumulator (1) -mal nValue (2). Die letzte Anweisung Schritten nValue bis 3.

Dieser Zyklus der Spaß geht weiter, bis nValue erreicht den Wert 6, die nicht mehr kleiner als oder gleich 5. An diesem Punkt geht die Steuerung auf die erste Mitteilung über die geschlossene Klammer }. Dies ist graphisch hier gezeigt.

bild0.jpg

Die tatsächliche Ausgabe von dem Programm erscheint als für einen Eingangswert von 5 folgt:

Dieses Programm berechnet factorial.Enter eine Nummer zu nehmen Fakultät: 51 * 1 gleich 11 * 2 gleich 22 * ​​3 gleich 66 * 4 gleich 2424 * 5 gleich 1205 Fakultäts ist 120Press weiterhin ein. . .

Sie sind nicht garantiert, dass der Code innerhalb der geschweiften Klammern eines während Schleife wird überhaupt ausgeführt: Wenn der Bedingungsausdruck es ausgewertet falsch das erste Mal ist, geht die Steuerung um die Zahnspange, ohne jemals Tauchen in Betrachten wir zum Beispiel die Ausgabe von dem Factorial Programm, wenn der Benutzer ein Zielwert von 0 eintritt.:

Dieses Programm berechnet factorial.Enter eine Nummer zu nehmen Fakultät: 00 Fakultät ist 1Drücken weiterhin ein. . .

Keine Ausgabezeilen werden von innerhalb der Schleife, da der Bedingung erzeugt # 147-Is nValue weniger als oder gleich 0 # 148- war für den Anfangswert von 1. Der Körper des falschen sogar während Schleife wurde nie ausgeführt.

Menü