Falscher Return-Wert

Allgrind

Mitglied
Hallo!

Ich habe ein Problem mit meinem Return-Wert in der IF-Anweisung. Wenn ich das Programm nun ausführe (ich benutze dafür BlueJ), bekomme ich den Return-Wert, den ich für das x angegeben habe, anstatt die dafür vorgesehene Rechnung.

Sollte in der Erläuterung etwas unklar sein, so fragt nach...bin mit den Nerven diesbezüglich schon fast am Ende und meine Verzweiflung lässt mich nicht mehr klar denken.

Hier der Code:

Java:
public class Rechner
{
    private double zahl1;
    private double zahl2;
    

    public Rechner(double z1, double z2)
    {
         zahl1 = z1;
         zahl2 = z2;
    }

    public double addieren()
    {
        return zahl1 + zahl2;
    }
    
    public double subtrahieren()
    {
        return zahl1 - zahl2;
    }
    
    public double multiplizieren()
    {
        return zahl1 * zahl2;
    }
    
    public double dividieren()
    {
        return zahl1 / zahl2;
    }
    
    public double gibMittelwert()
    {
        return addieren() / 2;
    }
    
    public int berechne(int x)
    {
                
       if (x == 1)
        {    
            addieren();
        }
    
        else if (x == 2)
        {
            subtrahieren();
        }
        
        else if (x == 3)
        {
            multiplizieren();
        }
        
        else if (x == 4)
        {
            dividieren();
        }
        
        else if (x == 5)
        {
            gibMittelwert();
        }
        
        else
        {
            System.out.println("Bitte eine Zahl zwischen 1 und 5 angeben");
        }      
       return x;
    }
}
 
Naja du gibst ja auch x zurück in Zeile 70 😀
Deine ganzen Methoden geben doch Werte zurück, du machst mit denen aber nichts, die verschwinden ins Nirvana!
Java:
if (x == 1)
        {    
            addieren();
        }
    
        else if (x == 2)
        {
            subtrahieren();
        }
        
.......
->
Java:
if (x == 1)
        {    
            return addieren();
        }
    
        else if (x == 2)
        {
           return subtrahieren();
        }
        
......
 
Zuletzt bearbeitet:
Du veränderst x ja auch nie. Du gibst berechne zwar x mit, aber dann führst du einfach die Funktionen aus. Und diese geben einfach einen Wert zurück. Du schreibst ihn aber nirgends wo hin. Vielleicht mal sowas wie
Code:
x = gibMittelwert();
probieren? 🙂

edit: 2late
 

Neue Themen


Zurück
Oben