Problem : Rückgabewert
-
Hallo,
int funktion ( )
Wie ist das nochmal wenn ich eine if ..else Verzweigung verwende
und z.b. nur im if- Zweig ein int Wert zurückgegeben wird,
aber im else nur eine ganz normale cout<< Anweisung, aber kein int Wert.
Wie wird das ganze dann gehandhabt. Der Compiler meckert denk ich mal
nicht.Bye
-
Aber trotzdem ist es falsch , auch wenn er nicht meckert :))
-
Ein guter Compiler würde warnen. MSVC9 tut es z.B.
-
Ja er warnt auch, aber das erstaunliche es wird immer ein Wert zurückgegeben.
Auch wenn wie im Beispiel unten der else Zweig nicht abgearbeitet wird.#include <iostream> using namespace std; int funktion(int y) { if(y>5) { cout<<"Zahl zu groß"; } else { return y; } } void main (void) { int x=4; int z; z=funktion(x); cout<<z; }
-
blurry33 schrieb:
Ja er warnt auch, aber das erstaunliche es wird immer ein Wert zurückgegeben.
Das muss sie auch. Der Wert ist dann aber undefiniert.
-
Aber wie kann ich das Problem lösen ??
-
mit einer exception oder wenns nen logikfehler ist, dann reicht vll auch nen assert...
bb
-
... oder ein Defaultwert zurückgeben, falls das in deinem Fall eine sinnvolle Option ist.