nicht alle codepfade geben einen wert zurück
-
Hallo ,
ich rufe in meine code methode auf aber bekomme fehlerEin Objekt oder Typ ist erforderlich, der in "int" konvertiert werden kann.
int x= GetMethode1(dieNummer);
public int GetMethode1(int dieNummer) { if (dieNummer== 0) { return 100; } else if (dieNummer>= 100 && dieNummer< 500) { return (dieNummer+ 1); } else if (dieNummer== 500) { return 170; } else { return; } }
wie kann ich das beheben??
-
anfänger1 schrieb:
wie kann ich das beheben??
Idealerweise indem du ein Grundlagenbuch liest
Die Welt ist aber alles andere als ideal und daher der Hinweis: Frage dich mal, was passiert, wenn die Methode in den else-Zweig reinläuft.. welcher Wert wird zurückgegeben.. welcher Wert soll an die Variable x zugewiesen werden, wenn die Methode beendet ist?
-
also entweder 100 ,dieNummer+1 oder 170 soll zurückliefern,amsonsten nix tun.
deshalb habe ich am ende return geschrieben.
-
Tja dann gib im leeren return eine 0 zurück. Irgendetwas musst du dort zurück liefern.
-
Am ende soll nix liefern sonst läuft meine code nochmal durch .Dann bekomm ich unendliche antwort
wie kann ich das verhindern??
-
anfänger1 schrieb:
Am ende soll nix liefern sonst läuft meine code nochmal durch .Dann bekomm ich unendliche antwort
wie kann ich das verhindern??Du gibst im else-Zweig einen speziellen Wert zurück.. z.B. 0 oder -1. So kannst du den Rückgabewert der Methode prüfen, nachdem du sie aufgerufen hast. Wenn er 0 oder -1 ist - je nachdem wofür du dich entscheidest - kannst du dein Programm beenden/abbrechen/etc.
Ansonsten gibt es kein "nix machen", wenn die Methode einen Rückgabewert hat (ja, Exceptions, aber eher nicht).
-
Danke,
mit -1 funktioniert.