nicht alle codepfade geben einen wert zurück



  • Hallo ,
    ich rufe in meine code methode auf aber bekomme fehler

    Ein 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.


Anmelden zum Antworten