Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln

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

temi

Und noch ganz wichtig: Hast du mal ausprobiert, ob dein Taschenrechner richtig rechnet?
 
C

Codix

Hier mal drei Beispielmethoden (der Code ist egal)
Java:
int getValue() {
    //.. code
}

int add(int value1, int value2) {
    //.. code
}

void doSomething(String text, int intVal) {
    //.. code
}
Zeig mir mal, wie die Aufrufe dazu aussehen könnten!
Code:
int getValue() {

    //.. code

}


int add(int value1, int value2) {

    //.. code

}

void doSomething(String text, int intVal) {

    //.. code

}
// noch ein Paar Zeile Code

eingabe = JOptionPane.showInputDialog("Tippen Sie -- ein (add, doSomething, *, /,^):");


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

case "getValue":
        System.out.println("Resultat = " + getValue());
                  break;

    //.. code

}

case "doSomething":
        System.out.println("Resultat = " + doSomething(text,intVal));
                  break;
so ungefähr?
 
T

temi

Code:
System.out.println("Resultat = " + add(zahl1,zahl2));
Das ist richtig. Innerhalb der Klammer von println() sagst du in einfachen Worten ausgedrückt:

Nimm den String "Resultat : " und hänge daran das Ergebnis aus dem Aufruf der Methode add() in seiner Stringrepräsentation. Wichtig ist: Die Methode add() liefert einen Rückgabewert. In diesem Fall wandelt der Compiler den zurück gegebenen Integerwert automatisch in einen String um.

Code:
System.out.println("Resultat = " + doSomething(text,intVal));
Kann das funktionieren, wenn du das zur vorherigen Methode gesagte berücksichtigst?
Kannst du anstatt der beiden Variablen "text" und "intVal" auch direkt Werte angeben, die du der Methode übergibst? Achte auf die Datentypen! Als Beispiel für die Methode darüber add(5, 5)
 
C

Codix

Code:
System.out.println("Resultat = " + add(zahl1,zahl2));
Das ist richtig. Innerhalb der Klammer von println() sagst du in einfachen Worten ausgedrückt:

Nimm den String "Resultat : " und hänge daran das Ergebnis aus dem Aufruf der Methode add() in seiner Stringrepräsentation. Wichtig ist: Die Methode add() liefert einen Rückgabewert. In diesem Fall wandelt der Compiler den zurück gegebenen Integerwert automatisch in einen String um.

Code:
System.out.println("Resultat = " + doSomething(text,intVal));
Kann das funktionieren, wenn du das zur vorherigen Methode gesagte berücksichtigst?
Kannst du anstatt der beiden Variablen "text" und "intVal" auch direkt Werte angeben, die du der Methode übergibst? Achte auf die Datentypen! Als Beispiel für die Methode darüber add(5, 5)

es kann schon funken, muss halt String(Datentyp) für text und int(Datentyp) für intVal sein.
 
C

Codix

nochmals die Frage:

ja aber ich habe doch schon 2 Parameter übergeben:

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

==
Warum will der Compiler jetzt noch zahl2 haben? also zahl2 2 mal!
 
C

Codix

bei produkt z.B.
ist der erste zahl1 und der zweite zahl2.
Warum will er jetzt den zweiten Parameter 2 mal haben?
 
T

temi

bei produkt z.B.
ist der erste zahl1 und der zweite zahl2.
Warum will er jetzt den zweiten Parameter 2 mal haben?
Darum geht es: produkt(zahl1 * zahl2, zahl2)

Wie werden Parameter voneinander getrennt? Mit welchem Zeichen?

Was ist dann bei dir der erste und was der zweite Parameter? Genau bei dem oben gezeigten Aufruf.

Und warum rechnet dein Taschenrechner falsch? Das ergibt sich daraus.
 
C

Codix

Darum geht es: produkt(zahl1 * zahl2, zahl2)

Wie werden Parameter voneinander getrennt? Mit welchem Zeichen?

Was ist dann bei dir der erste und was der zweite Parameter?

Und warum rechnet dein Taschenrechner falsch? Das ergibt sich daraus.
der TaRe rechnet richtig. Er gab bloss einen Fehler an, als ich zahl2 (zweiten Parameter einmal schrieb).

Parameter werden durch komma getrennt, aber hier haben wir eine Rechenoperation, deswegen das * Zeichen dazwischen.
 
T

temi

Hurra! Na bitte, geht doch!

Hier ist nochmal dein Aufruf: produkt(zahl1 * zahl2, zahl2)

Das Trennzeichen zwischen den Parametern ist das Komma. Schau genau hin!

Was ist dann der erste und was der zweite Parameter?
Beantworte diese Fragen! Ganz wichtig! Danach weißt du auch warum er falsch rechnet.
 
C

Codix

jetzt müsste es stimmen. Zwischen den Parametern darf kein anderes Zeichen stehen (ob wir rechnen oder nicht).
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;
        }
        }
      }
Beantworte diese Fragen! Ganz wichtig! Danach weißt du auch warum er falsch rechnet.
case "*":
System.out.println("Resultat = " + produkt(zahl1, zahl2));
break;

so ist es richtig. 2 Parameter durch Kommazeichen getrennt. :) Jetzt rechnet er auch richtig und zeigt keine Fehler an.
 
T

temi

produkt(zahl1 * zahl2, zahl2)

Und was ist hier nun der erste und was der zweite Parameter?
 
Thema: 

Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben