2017-07-08 2 views
-4

im einen Code zu schreiben versucht, aber aus irgendeinem Grunde das Programm in einer Schleife der if-AnweisungenWie ich das Programm machen kann halten gehen nächste Zeile nach dem vollständigen auf if-Anweisung

#include "std_lib_facilities.h" 
int main() 
{ 
    double i = 0; 
    double u = 0; 
    cout << "Enter one numbers:\n"; 
    while (cin >> i) 
     if (i > u) 
     { 
      cout << "the largest number is: " << i << '\n' 
      << "the smallest number is " << u << "\n"; 
} 
     else if (i < u) { 
      cout << "the largest number is " << u << '\n' 
       << "the smallest number is " << i << "\n"; 
     } 
     else if (i == u) { 
      cout << "The numbers are equal\n"; 
     } 
     cout << "blabla\n"; 
     keep_window_open(); 

} 

Also mein Ziel gesteckt ist dass, nachdem es das "if else" überprüft, ist sogar einige von ihnen wahr, oder ich brauche es cout << "blabla\n"; der Code ist nicht fertig, ich muss nur verstehen, wie man es zu einer anderen Linie springen, so dass ich in der Lage sein wird zu halten schreibe das weiter.

+1

Bitte nehmen Sie die [tour] (https://stackoverflow.com/tour) und lesen Sie die [Hilfe] (https: // Stackoverflow .com/Hilfe) Seite. Sie sollten auch versuchen, [MCVE] (https://stackoverflow.com/help/mcve) bereitzustellen. 'std_lib_facilities.h' ist kein Standard-C++ - Header. – Ron

+2

Lesen Sie mehr ein gutes C++ Programmierbuch. Dann kompilieren Sie Ihren Code mit allen Warnungen und Debug-Informationen (z. B. mit 'g ++ -Wall -Wextra -g ', wenn Sie [GCC] (http://gcc.gnu.org/) verwenden). ** Verwenden Sie den Debugger ** (z. B. 'gdb') –

+0

Ich verstehe nicht, was Sie fragen. – melpomene

Antwort

0

Wenn ich Sie recht verstanden, und Sie brauchen nur "blabla\n" jedes Mal in der while Schleife zu drucken, dann um Sie müssen nur geschweifte Klammern setzen, wie folgt aus:

while (cin >> i) { 
    if (i > u) { ... } 
    else if (i < u) { ... } 
    ... 
    cout << "blabla\n"; 
} 

Im Allgemeinen Sie besser schreiben geschweifte Klammern überall, denn wenn man sie meidet, erspart man sich heute eine Sekunde, kann aber einige Monate später eine Stunde stehlen, nur für den Fall, dass man etwas nach innen geben muss.

Beachten Sie, dass Sie auch goto Konstruktion verwenden können, um die Ausführung eines Programms von einem beliebigen Punkt zu einem anderen Punkt zu übergeben, aber Sie verwenden es besser nicht, da es sowohl Schreiben als auch Lesen komplex ist.

Wenn Sie stattdessen nur eine ganze Zahl erhalten möchten, sollten Sie cin >> i; anstelle Ihrer while-Schleife verwenden.

0

Ihr Problem ist entweder nicht "blabla" drucken, während in der Schleife oder nicht aus der Schleife. Für letztere sehen Sie die Antwort von Ron.

Zum Ausdrucken von "blabla" in der Schleife müssen Sie einen Block der Anweisungen erstellen, die in Ihrer Schleife ausgeführt werden sollen. I.e. Öffnen Sie ein Paar {} direkt nach der Weile und schließen Sie es nach der letzten Anweisung, die Sie innerhalb der Schleife wollen.

Ich habe Ihren Code minimal bearbeitet den Block zu demonstrieren:

#include "std_lib_facilities.h" 
int main() 
{ 
    double i = 0; 
    double u = 0; 
    cout << "Enter one numbers:\n"; 
    while (cin >> i) 
    { // starting the block of looped statements 
     if (i > u) 
     { 
      cout << "the largest number is: " << i << '\n' 
      << "the smallest number is " << u << "\n"; 
     } 
     else if (i < u) { 
      cout << "the largest number is " << u << '\n' 
       << "the smallest number is " << i << "\n"; 
     } 
     else if (i == u) { 
      cout << "The numbers are equal\n"; 
     } 
     cout << "blabla\n"; 
    } // end the block of looped statements, 

    // guessing that this is NOT supposed to be inside the loop 
    keep_window_open(); 
} 
Verwandte Themen