Return Statement notwendig?

5 Antworten

Was bedeutet "kenzeln"?

Ansonsten fehlt unten noch ein return (da, wo die Meldung auch steht). für den Fall, dass keine Bedingung zutreffend ist.

einfach noch ein return unten einfügen.

Ob es true oder false sein muss, hängt davon ab, wofür dieser boolean steht und was die Funktion genau macht.

Woher ich das weiß:Hobby

Du musst das else entferne und das return statement nach dem if Block einfach darunter schreiben. Dann meckert der Compiler nicht mehr.

Generell gilt, statt einem else Block mit 2. Return Statement, immer das 2. return statement einfach unter den if-Block schreiben. Zudem muss jeder Fall abgedeckt sein, d.h wenn du nur if/elif Blöcke hast, dann musst du unter den letzten Block trotzdem noch ein return Statement schreiben, sonst sind nicht alle Fälle abgedeckt.

Woher ich das weiß:Berufserfahrung – Financial Data Scientist @ Google (Cloud) [TensorFlow]

return legt nicht nur den Rückgabewert fest, sondern beendet auch gleichzeitig die Funktion. Alles, was nach dem return steht, wird daher nicht mehr ausgeführt. Wenn bei deinem Code noch irgendwas nach dem if stehen würde, würde das eben nie ausgeführt, weil du in beiden Zweigen des if die Funktion beendest.

Wenn du das nicht willst, definiere eine Variable (bool result), weise der jeweils das Ergebnis zu und mache nur ein "return result;" am Ende der Funktion.

Woher ich das weiß:Berufserfahrung – Softwareentwickler & Admin
Pizzaliferant31 
Fragesteller
 28.11.2019, 19:17

Wenn ich dann also am Ende noch einen return statement mache zählt der nicht?

0
iQa1x  28.11.2019, 19:21
@Pizzaliferant31

Das kommst drauf an, ob du in jedem If-Zweig drüber (also vor dem sichtbaren else) auch schon ein Return drin hast. Wenn es einen Zweig gibt, der kein return hat, dann wrd das return am Ende ausgeführt.

Der Compiler sollte aber ne Warning "unreachable code" bringen, wenn du irgendwo anweisungen drin hast, die immer per return übersprungen werden

0
iQa1x  28.11.2019, 19:27
@Pizzaliferant31

Schreib halt einfach drunter mal noch nen return rein. Wenn du da nie hinkommst, meckert der Compiler, dann ist es unnötig und kann weg. Wenn du nicht alle Zweige mit return hast, sollte eigentlich eine andere Warnung kommen, weil in einem Zweig der Rückgabewert undefiniert ist.

1

nein, wenn ein return Statement im Programmablauf ausgeführt wird, ist die Funktion an der Stelle zu Ende, und der dort angegebene Wert wird zurückgeliefert.

Pizzaliferant31 
Fragesteller
 28.11.2019, 19:14

Und wie kann ich die in der If Anweisung dann zählen lassen?

0
freejack75  28.11.2019, 19:15
@Pizzaliferant31

ein return Statement kann man nicht zählen lassen. Es wird ausgeführt. Oder es wird nicht ausgeführt. Wie jedes andere Statement auch.

0
Pizzaliferant31 
Fragesteller
 28.11.2019, 19:19
@freejack75

Ja des mein ich auch.Wird der return statement am ende jetzt ausgefürt wenn ich noch einen hinmache?

0
freejack75  28.11.2019, 19:19
@Pizzaliferant31

nein. Das erste return, auf das getroffen wird, wird ausgeführt. Dann ist die Funktion zu Ende. Habe ich jedoch glaube ich schon mal geschrieben...

0

Ist das eine rekursive Methode?

Woher ich das weiß:Studium / Ausbildung – Business Software
Pizzaliferant31 
Fragesteller
 28.11.2019, 19:15

Sorry wir sind noch nicht so weit in Informatik.Was ist eine Rekursive Methode(Also rekursiv ist das was ich net verstehe)

0