Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln

Diskutiere Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln im Java Basics - Anfänger-Themen Bereich.
C

Codix

wobei zahl1 ja auch ein Parameter ist. alle 3 sind Parameter. Er würde halt von 3 Parametern ausgehen. zahl2 2 mal nehmen.
 
T

temi

Äh - nö!

Das sind zwei Sätze, sie sind durch ein Komma getrennt. Was sind die beiden Sätze?

"Das sind zwei Sätze" und "sie sind durch ein Komma getrennt."

Was sind also die beiden Parameter?

"zahl1 * zahl2" und "zahl2"

Warum stimmt also die Rechnung nicht?

Weil als erster Parameter das Ergebnis der Multiplikation von zahl1 und zahl2 übergeben wird und als zweiter Parameter die zahl2.

So einfach hätte das sein können!
 
C

Codix

aber jetzt stimmt der TaRe und er wurde mit Methoden codiert. Danke vielmals für die tolle Unterstützung.
Code:
public class Taschenrechner {

public static int summe(int x, int y) {
return (x + y);
}

public static int differenz(int x, int y) {
return (x - y);
}

public static int produkt(int x, int y) {
return (x * y);
}

public static int quotientenwert(int x, int y) {
return (x / y);
}

//Klassenmethode potenz, die 2 Parameter ( int basis & int expoWert hat)
public static long potenz(int basis, int expoWert) {
        long result = 1;
        while(expoWert > 0) {
            result *= basis;
            expoWert--;
        }
        return result;
}

public static void main(String[] args) {
        // TODO Automatisch generierter Methodenstub
        int zahl1, zahl2;
        String eingabe;
   
        zahl1 = Integer.parseInt(JOptionPane.showInputDialog("Tippen Sie Ihre erste Zahl ein:"));
        zahl2 = Integer.parseInt(JOptionPane.showInputDialog("Tippen Sie Ihre zweite Zahl ein:"));

        eingabe = JOptionPane.showInputDialog("Tippen Sie das Rechenzeichen ein (+, -, *, /,^):");

switch(eingabe)
        {
            case "+":
                System.out.println("Resultat = " + summe(zahl1, zahl2));
                  break;

            case "-":
                System.out.println("Resultat = " + differenz(zahl1, zahl2));
                  break;

            case "*":
                System.out.println("Resultat = " + produkt(zahl1, zahl2));
                  break;

            case "/":
                System.out.println("Resultat = " + quotientenwert(zahl1, zahl2));
                  break;

            case "^":
                System.out.println("Resultat = " + potenz(zahl1, zahl2));
                  break;
        }
        }
      }
bitte um feedback. ist der Code so in Ordnung? Ein TaRe, welcher mit Methoden erstellt wurde?
 
T

temi

So als Tipp nebenbei, für die nächsten Aufgaben (die sicher kommen werden). Rück doch bitte deinen Code ordentlich ein. Das erhöht die Lesbarkeit ungemein. Und bei den Code-Tags kannst du auch auswählen, welche Art von Code angezeigt werden soll. Stell das mal auf "Java". Dann wird das schön bunt!

Java:
public class Taschenrechner {

    public static int summe(int x, int y) {
        return (x + y);
    }

    public static int differenz(int x, int y) {
        return (x - y);
    }

    public static int produkt(int x, int y) {
        return (x * y);
    }

    public static int quotientenwert(int x, int y) {
        return (x / y);
    }

    public static long potenz(int basis, int expoWert) {
        long result = 1;
        while(expoWert > 0) {
            result *= basis;
            expoWert--;
        }
        return result;
    }

    public static void main(String[] args) {

        int zahl1, zahl2;
        String eingabe;
  
        zahl1 = Integer.parseInt(JOptionPane.showInputDialog("Tippen Sie Ihre erste Zahl ein:"));
        zahl2 = Integer.parseInt(JOptionPane.showInputDialog("Tippen Sie Ihre zweite Zahl ein:"));

        eingabe = JOptionPane.showInputDialog("Tippen Sie das Rechenzeichen ein (+, -, *, /,^):");

    switch(eingabe) {
        case "+":
            System.out.println("Resultat = " + summe(zahl1, zahl2));
            break;

        case "-":
            System.out.println("Resultat = " + differenz(zahl1, zahl2));
            break;

        case "*":
            System.out.println("Resultat = " + produkt(zahl1, zahl2));
            break;

        case "/":
            System.out.println("Resultat = " + quotientenwert(zahl1, zahl2));
            break;

        case "^":
            System.out.println("Resultat = " + potenz(zahl1, zahl2));
            break;
        }
    }
}
 
Zuletzt bearbeitet:
C

Codix

Java:
public class Taschenrechner {

public static int summe(int x, int y) {
return (x + y);
}

public static int differenz(int x, int y) {
return (x - y);
}

public static int produkt(int x, int y) {
return (x * y);
}

public static int quotientenwert(int x, int y) {
return (x / y);
}

//Klassenmethode potenz, die 2 Parameter ( int basis & int expoWert hat)
public static long potenz(int basis, int expoWert) {
        long result = 1;
        while(expoWert > 0) {
            result *= basis;
            expoWert--;
        }
        return result;
}

public static void main(String[] args) {
        // TODO Automatisch generierter Methodenstub
        int zahl1, zahl2;
        String eingabe;
   
        zahl1 = Integer.parseInt(JOptionPane.showInputDialog("Tippen Sie Ihre erste Zahl ein:"));
        zahl2 = Integer.parseInt(JOptionPane.showInputDialog("Tippen Sie Ihre zweite Zahl ein:"));

        eingabe = JOptionPane.showInputDialog("Tippen Sie das Rechenzeichen ein (+, -, *, /,^):");

switch(eingabe)
        {
case "+":
System.out.println("Resultat = " + summe(zahl1, zahl2));
break;

case "-":
System.out.println("Resultat = " + differenz(zahl1, zahl2));
break;

case "*":
System.out.println("Resultat = " + produkt(zahl1, zahl2));
break;

case "/":
System.out.println("Resultat = " + quotientenwert(zahl1, zahl2));
break;

case "^":
System.out.println("Resultat = " + potenz(zahl1, zahl2));
break;
        }
        }
      }
so?
 
T

temi

Werde ich in Zukunft machen (ab jetzt).
aber ansonsten ist die Aufgabe jetzt als gelöst anzusehen?
Probier alle Rechenoperationen mit verschiedenen Eingabewerten aus. Wenn die Ergebnisse alle stimmen, dann wird das schon passen.

Eine winzige Kleinigkeit auf höchstem Niveau wäre noch:

Variablennamen sollte so benannt werden, dass ihre Funktion möglichst klar zum Ausdruck kommt.

eingabe = JOptionPane.showInputDialog("Tippen Sie das Rechenzeichen ein (+, -, *, /,^):");

Das könnte man noch minimal verbessern, wenn man anstatt "eingabe" z.B. "operant" schreibt.

Code sollte sich weitgehend selbst kommentieren. Das wird dadurch erreicht.
 
T

temi

Außerdem sollten Variablen erst so spät wie möglich deklariert werden.
Java:
        int zahl1, zahl2;
        String eingabe;
  
        zahl1 = Integer.parseInt(JOptionPane.showInputDialog("Tippen Sie Ihre erste Zahl ein:"));
        zahl2 = Integer.parseInt(JOptionPane.showInputDialog("Tippen Sie Ihre zweite Zahl ein:"));

        eingabe = JOptionPane.showInputDialog("Tippen Sie das Rechenzeichen ein (+, -, *, /,^):");
würde dann zu:
Java:
        int zahl1, zahl2;
        zahl1 = Integer.parseInt(JOptionPane.showInputDialog("Tippen Sie Ihre erste Zahl ein:"));
        zahl2 = Integer.parseInt(JOptionPane.showInputDialog("Tippen Sie Ihre zweite Zahl ein:"));
        String operant;
        operant = JOptionPane.showInputDialog("Tippen Sie das Rechenzeichen ein (+, -, *, /,^):");
        
        // oder direkt
        
        int zahl1 = Integer.parseInt(JOptionPane.showInputDialog("Tippen Sie Ihre erste Zahl ein:"));
        int zahl2 = Integer.parseInt(JOptionPane.showInputDialog("Tippen Sie Ihre zweite Zahl ein:"));
        String operant = JOptionPane.showInputDialog("Tippen Sie das Rechenzeichen ein (+, -, *, /,^):");
So etwas kann man sich gerne gleich angewöhnen, es ist aber kein Weltuntergang, wenn nicht.
 
mihe7

mihe7

@Codenix, äh @Codix mal eine Frage: bist Du noch in der Schule, auf der Uni oder brauchst Du das für die Ausbildung? Bloß damit man weiß, was man Dir empfehlen kann.
 
Thema: 

Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben