2016-05-01 11 views
1

Ich habe die Grundlagen von C++ vor ein paar Monaten gelernt. Kürzlich habe ich eine While-Schleife gefunden, die so aussieht. Ich möchte verstehen, wie es funktioniert.Wie funktioniert diese C++ - While-Schleife?

while(cin>>n>>m,n||m) 
{ 
    does something; 
} 
+0

Comma Zurückgegeben der letzte Wert "a, b" ist wahr, wenn "b" wahr ist. –

+1

Für * extreme * Pedanterie würde man 'while (cin >> n >> m, void(), n || m)' –

Antwort

4

operator , (operator comma) führt alle Befehle in der Liste und gibt Wert des letzten Ausdrucks, so cin>>n>>m,n||m zu

cin >> n >> m; 
n || m; 

Und ganze Schleife wie diese hier funktioniert gleich ist:

int n, m; 
cin >> n >> m; 
while(n || m){ 
    //some action 
    cin >> n >> m; 
} 
+1

eingeben. Dem Compiler steht es frei, diese Anweisungen in beliebiger Reihenfolge auszuführen. – ForceBru

+4

Um Nr. In C++ 98 spreche alle von std :: ostream :: operator >>, Komma-Operator, und logische oder Operator produzieren einen Sequenzpunkt. Es gibt keine Wahl über die Bestellung überhaupt. (Neuere C++ - Standards sprechen über "sequenziert vorher/nachher" anstatt Sequenzpunkte, aber die Logik ist die gleiche.) –

+0

danke für die Erklärung, jetzt verstehe ich das Konzept. – Reshad