JavaSwitchCase

aznminh

Mitglied
Hallo Leute,

ich soll einen Taschenrechner mit Hilfe von SwitchCase erstellen.
Java:
import Prog1Tools.IOTools;

import java.lang.invoke.SwitchPoint;

public class TaschenrechnerSwitchCase {
    public static void main(String[] args) {
        System.out.println("Willkommen im Taschenrechner !");
        int Operand1 = IOTools.readInt("Bitte eine Zahl eingeben: ");
        int Operand2 = IOTools.readInt("Bitte eine zweite Zahl eingeben: ");
        char Operator = IOTools.readChar("Bitte den Operator(+, -, *, / oder % eingeben: ");
        int ergebnis;
        ergebnis = 0;
        ergebnis = Operand1 + Operator + Operand2;
        switch (Operator) {
            case 1:
                System.out.println('+');
                break;
            case 2:
                System.out.println('-');
                break;
            case 3:
                System.out.println('*');
                break;
            case 4:
                System.out.println('/');
                break;
            case 5:
                System.out.println('%');
                break;}
        System.out.println(Operand1 + Operator+ Operand2 +  "=" + ergebnis);


        }}
hier ist mein Code.
Ich bekomme immer ein falsches Ergebnis wenn ich das Programm starte.
Habt ihr eine Idee wo genau der Fehler liegen könnte.
 

mihe7

Top Contributor
Äh, Du musst das Ergebnis natürlich je nach Operator (und damit in den Cases) berechnen. Außerdem muss der case den Character angeben:
Java:
case '+':
    ergebnis = operand1 + operand2;
    break;

Die Java Bennungskonventionen sehen vor, dass Namen von Variablen, Parametern und Methoden in lowerCamelCase, von Typen (Klassen & Co.) in UpperCamelCase geschrieben werden. Bitte daran halten.
 

aznminh

Mitglied
Danke!
Hab noch eine kleine frage.
Code:
System.out.println(operand1 + "" + operator + "" + operand2 +  " = " + ergebnis);
Kannst du mir erklären warum man "" zwichen operand1 und operator und beim operand2 und operator setzen muss?
 

temi

Top Contributor
Danke!
Hab noch eine kleine frage.
Code:
System.out.println(operand1 + "" + operator + "" + operand2 +  " = " + ergebnis);
Kannst du mir erklären warum man "" zwichen operand1 und operator und beim operand2 und operator setzen muss?

Muss man das?

Es reicht aus wenn man ganz am Anfang "" + operand1 + ... schreibt, damit wird klar festgelegt, dass ein String ausgegeben werden soll und alles nachfolgende ebenfalls als String behandelt (z.B. für operand1 wird seine toString() Methode aufgerufen). Das "+" bewirkt nach dem "", dass im Folgenden eine String-Konkatenation durchgeführt wird.

Andernfalls würde erst mal eine Rechnung durchgeführt (der Integerwert von operand1 + den "ASCII"-Wert des Chars + der Integerwert von operand2) bevor dieses Ergebnis als String ausgegeben würde.
 

Neue Themen


Oben