Taschenrechner mit SwitchCase programmieren?
Hallo;
Und zwar steht die Frage oben.
Ich habe momentan meinen Taschenrechner mit dem IfElse Konzept programmiert und soll diesen nun in den Switchcase überführen.
Wie soll ich denn nun dem System klarmachen was ich mit Operator meine?
switch (operator) {
Soll ich int operator = + schreiben oder wie?
4 Antworten
- Wäre es gut, wenn wir deinen bisherigen Code sehen dürften :)
- Dein operator passt ja in einen CHAR, und diesen kannst du dann in dein Switch-Case einprogrammieren
switch (operator){
case '+':
break;
case '-':
break;
}
etc.
MFG xGlumi
Öhm, so ist es natürlich auch möglch (Wenn ich deinen Code richtig lese, und du je nach gedrücktem Operator deiner Variable "var" eine entsprechende Zahl gibst.
Frage:
Weshalb hast du es nicht per CHAR gelöst?
Beispiel:
int ergebnis = 0; //Hier könntest du übrigens schon deine bisherige Zahl (Zwischenergebnis) reinspeichern
char operator = '\0';
operator = (char) System.in.read();
switch (operator){
case '+':
ergebnis += zahl2;
break;
case '-':
ergebnis -= zahl2;
break;
case '*':
ergebnis *= zahl2;
break;
case '/':
ergebnis /= zahl2;
break;
default:
System.out.Println("Das war kein Operator");
break;
}
Natürlich kenne ich deinen Code davor und danach nicht, wie du z.B. die Zahlen / Operator einliest. (Hast du eine GUI? machst du das per CLI?)
Aber so würde ich es zum Anfang machen
MFG xGlumi
Der ganze Code ist wie folgt:
public class Taschenrechner {
public static void main(String[]args){
System.out.println("Willkommen im Taschenrechner!");
int zahl = IOTools.readInteger();
System.out.println("Geben Sie bitte eine Zahl ein:" + zahl);
int zahl2 = IOTools.readInteger();
System.out.println("Geben Sie bitte eine weitere Zahl ein:" + zahl2);
char operator = IOTools.readChar();
System.out.println("Geben Sie bitte einen Operatoren ein:" + operator);
int ergebnis = 0;
und weiter komme ich halt nicht.. deine Möglichkeit habe ich ausprobiert, sie hat leider nicht geklappt..
lg
Also bei mir funktioniert folgender Code:
import java.util.Scanner;
public static void main(String args[]) {
Scanner reader = new Scanner(System.in);
System.out.println("Willkommen im Taschenrechner!");
int zahl = reader.nextInt();
System.out.println("Geben Sie bitte eine Zahl ein:" + zahl);
int zahl2 = reader.nextInt();
System.out.println("Geben Sie bitte eine weitere Zahl ein:" + zahl2);
char operator = reader.next().charAt(0);
System.out.println("Geben Sie bitte einen Operatoren ein:" + operator);
int ergebnis = 0;
switch (operator){
case '+':
ergebnis = zahl + zahl2;
break;
case '-':
ergebnis = zahl - zahl2;
break;
case '*':
ergebnis = zahl * zahl2;
break;
case '/':
ergebnis = zahl / zahl2;
break;
default:
System.out.println("Das war kein Operator");
break;
}
System.out.println("Ergebnis: " + ergebnis);
}
Das einlesen der Daten kannst du wieder auf dein "IOTools" ummünzen, ich kenne "IOTools" nicht, deshalb habe ich mir mit der normalen Scanner-Klasse beholfen.
MFG xGlumi
Gut! Danke hat geklappt, doch wenn ich jetzt bei der Eingabe in der Konsole 5, 5 und danach z.B. G eingebe, dann steht da zwar das war kein operator: G aber als ergebnis steht 5g5=0. wie kriege ich es hin, dass dort nur die fehlermeldung steht?
Was ist Operator für ein Datentyp? String?
Schau dir an wie man Switch verwendet und mit welchen Datentypen das wie funktioniert ;)
So:
char operator = IOToolkit.getChar();
switch (operator) {
// ...
Die Variable operator ist doch die, die du überprüfen möchtest. So, wie du es auch bei if-else tust.
String op = "+";
switch (op) {
case "+": // ...
}
oder
char op = '+';
switch (op) {
case '+': // ...
}
int ergebnis = 0;
int var = 0;
switch (var) {
case 0:
ergebnis = zahl + zahl2; break;
case 1:
ergebnis = zahl - zahl2; break;
case 2:
ergebnis = zahl * zahl2; break;
case 3:
ergebnis = zahl / zahl2; break;
case 4:
ergebnis = zahl % zahl2; break;
default:
System.out.println("Das war kein Operator.");
}
}
das ist mein bisheriger code