2016-08-16 7 views
-7
bool accept3() 
{ 
    int tries = 1; 
    while (tries<4) { 
     cout << "Do you want to proceed (y or n)?\n"; // write question 
     char answer = 0; 
     cin >> answer; // read answer 
     switch (answer) { 
      case 'y': 
       return true; 
      case 'n': 
       return false; 
      default: 
       cout << "Sorry, I don't understand that.\n"; 
       ++tries; // increment 
     } 
    } 
    cout << "I'll take that for a no.\n"; 
    return false; 
} 

Führt die return-Anweisung dazu, dass die Ausführung aus der aktuell ausgeführten Funktion springt (in diesem Fall accept3())?Ich kann das nicht verstehen C++ - Code

+6

Einrückung ist ein guter Anfang, um Code zu verstehen. Zu lernen, wie man einen Debugger benutzt und wie man Code Zeile für Zeile durchläuft, ist ebenfalls gut. –

+3

Sie erwarten 'return', die Funktion nicht zu verlassen? – dhke

+0

[C++ Schlüsselwörter: brechen] (http://en.cppreference.com/w/cpp/keyword/break). – IInspectable

Antwort

2

Die Anweisung return bewirkt, dass die Ausführung von der aktuell ausgeführten Funktion springt (in diesem Fall accept3()), sodass die Schleife innerhalb der Funktion ebenfalls ausgeblendet wird.

0

Wenn der gespeicherte Eingang in answery ist der erste Fall, der switch-Anweisung wird eingegeben, eine return true; enthält, die aus der Funktion accept3(), so kehrt auch die while -loop verlassen.

0

Weil die Anweisung return die aktuelle Funktion beendet und das Ergebnis des Ausdrucks an den Aufrufer zurückgibt. While-Loop-Bedingung spielt in diesem Fall keine Rolle.

2

Die return Anweisung ist es egal, ob Sie in der Mitte einer Schleife sind oder nicht. Wenn Sie return etwas, verlassen Sie sofort die Ausführung dieser Funktion.

Verwandte Themen