Frage von alksdpodksd, 47

Unterschied zwischen ;return 0; und return 0:?

Wieso ist das so und wofür?
MFG

Antwort
von W00dp3ckr, 22

return;0 ist in den meisten Fällen ein Programmierfehler.

return 0; gibt 0 zurück.

return;0
verlässt die Prozedur ohne Rückgabe eines Wertes, und evaluiert dann
den Ausdruck 0. Der Code ist aber unerreichbar und hat daher keinen
Effekt.

Kommentar von alksdpodksd ,

Danke, aber manchmal sagt der Compiler das ;return richtig ist und manchmal auch ohne Komma.

Kommentar von W00dp3ckr ,

Dass der Compiler was richtig findet, das heißt ja nicht, dass das sinnvoll ist.

"Schweine können mit Muskelkraft fliegen." ist ein korrekt gebildeter deutscher Satz. Trotzdem bildet er die Realität nicht ab.

Kommentar von ralphdieter ,

0 ist ein Ausdruck. Zu einer Anweisung wird er erst durch ein abschließendes Semikolon.

"return;0" ist also syntaktisch falsch.

Kommentar von W00dp3ckr ,

Ich ging implizit davon aus, dass da irgendwo ein ";" dann noch kommt. Sonst würde sich ja der Compiler beklagen.

Aber Du hast recht, danke!

Antwort
von Helfenderuser, 34

In C++? Was meinst du jetzt? Der Syntax für return lautet "return [expression];"?

Kommentar von alksdpodksd ,

Ja C++ Am Ende eines Programmes kann man ja return 0; schreiben aber es gibt auch ;return ;0 und ich möchte wissen wieso und wofür das so ist
MFG

Kommentar von Roderic ,

;return ;0

Wo gibts das? Das macht keinen Sinn.

Kommentar von W00dp3ckr ,

Dohoch, das kannst Du machen, es kommt nur nicht das raus, was Du willst :-D. Was passiert, ist oben in meiner Antwort beschrieben.

Kommentar von Roderic ,

Na klar kann man's machen.

Bringt bloß nüscht, weil's von jedem halbwegs modernen Compiler rausoptimiert wird.

;-)

Antwort
von W00dp3ckr, 16

Return 0?true:false wird immer false zurückgeben. Der Ausdruck vorn wird evaluiert, wenn er 1 ist, wird das vorm Doppelpunkt zurückgegeben, wenn er 0 ist, wird das hinterm Doppelpunkt zurückgegeben.

Keine passende Antwort gefunden?

Fragen Sie die Community