Ausbruch aus der Mitte eines C ++ while-Schleife

Manchmal ist die Bedingung, dass Sie eine zu beenden verursacht während Schleife auftreten, in der Mitte der Schleife, bis irgendwo nicht. Dies gilt insbesondere, wenn eine Benutzereingabe für einige Beendigungszeichen testen. C ++ bietet diese beiden Steuerbefehle, diesen Fall zu behandeln:

  • Unterbrechung sofort verlässt den innersten Schleife.

  • fortsetzen geht die Steuerung an den Anfang der Schleife zurück.

Folgende Produkt Programm zeigt sowohl Unterbrechung und fortsetzen. Dieses Programm multipliziert positive Werte, die durch den Benutzer eingegeben, bis der Benutzer eine negative Zahl eingibt. Das Programm ignoriert Null.

//// Produkt - demonstrieren die Verwendung von Bruch und continue.//#include #einschließen #einschließen using namespace std-int main (int nNumberofArgs, char * pszArgs []) {// die Nummer eingeben, die Fakultäts ofcout zu berechnen lt; lt; "Dieses Programm multipliziert die Zahlen n" lt; lt; "Durch den Benutzer eingegeben Geben Sie einen negativen. N" lt; lt; "Nummer zu verlassen Nullen ignoriert werden. N." Lt; lt; Endl-int nProduct = 1-while (true) {int nValue-cout lt; lt; "Geben Sie eine Zahl zu multiplizieren:" -cin >> nValue-if (nValue lt; 0) {cout lt; lt; "Beenden". lt; lt; Endl-Break-} if (nValue == 0) {cout lt; lt; "Ignorieren von Null." lt; lt; Endl-continue -} // multiplizieren Akkumulator mit diesem Wert und // Ausgabe der resultcout lt; lt; nProduct lt; lt; "*" lt; lt; nValue-nProduct * = nValue-cout lt; lt; "Ist" lt; lt; nProduct 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-}

Das Programm beginnt mit einem Anfangswert von nProduct 1. wertet das Programm dann den logischen Ausdruck wahr zu sehen, ob es wahr ist. Es ist.

Es gibt nicht zu viele Regeln, die in C ++ zu halten, ohne Ausnahme, aber hier ist eine: wahr ist immer wahr.

Das Programm tritt dann in die Schleife den Benutzer für einen anderen Wert zu veranZeiten zu multiplizieren nProduct, das akkumulierte Produkt aller Zahlen eingegeben bisher. Wenn der eingegebene Wert negativ ist, dann gibt das Programm den Satz "Beenden". vor der Ausführung Unterbrechung, das geht die Steuerung aus der Schleife.

Wenn der eingegebene Wert nicht negativ ist, geht die Steuerung zu dem zweiten ob Erklärung. Ob nValue gleich Null ist, dann gibt das Programm die Nachrichten "Ignorieren von Null." vor der Ausführung fortsetzen Erklärung, die zurück an den Anfang der Schleife geht die Steuerung, damit der Benutzer einen anderen Wert einzugeben.

Ob nValue weder kleiner als Null ist oder Null ist, dann geht die Steuerung nach unten, wo nValue wird multipliziert mit nProduct mit dem speziellen Zuweisungsoperator:

nProduct * = nValue-

Dieser Ausdruck ist die gleiche wie:

nProduct = nProduct * nValue-

Die Ausgabe von einem Probelauf von diesem Programm sieht wie folgt aus:

Dieses Programm vervielfacht durch den Benutzer die numbersentered. Geben Sie einen negativenumber zu verlassen. Zeroes sind ignored.Enter eine Zahl zu multiplizieren: 21 * 2 ist 2Geben eine Zahl zu multiplizieren: 52 * 5 ist 10Geben eine Zahl zu multiplizieren: 0Das Ignorieren zero.Enter eine Zahl zu multiplizieren: 310 * 3 ist 30Enter eine Zahl zu multiplizieren: -1Exiting.Press Sie die Eingabetaste. . .

Menü