Taschenrechner programmiert (Java)?
Was würdet ihr verbessern rein von der Struktur.
import java.util.Scanner;
public class App {
public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(System.in);
System.out.println("Bitte geben Sie erste Zahl ein: ");
double zahl1 = scanner.nextDouble();
System.out.println("Bitte geben Sie zweite Zahl ein: ");
double zahl2 = scanner.nextDouble();
System.out.println("Bitte geben Sie den Operator ein: ");
char operator = scanner.next().charAt(0);
System.out.println(taschenrechner(zahl1, zahl2, operator));
}
static double taschenrechner (double zahl1, double zahl2, char operator) {
double ergebnis = 0.0;
if (operator == '-') {
ergebnis = zahl1 - zahl2;
} else if (operator == '+') {
ergebnis = zahl1 + zahl2;
} else if (operator == '*') {
ergebnis = zahl1 * zahl2;
} else if (operator == '/') {
ergebnis = zahl1 / zahl2;
}
return ergebnis;
}
}
2 Antworten
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Programmiersprache
Wie schon erwähnt bietet sich für das Mapping von Operatoren auf Operationen ein switch an, und zwar am besten ein Switch-Ausdruck: https://dev.java/learn/language-basics/switch-expression/#producing-value
Es gäbe auch noch andere Möglichkeiten, wie eine Map auf Lambdas, aber das ist im Moment vielleicht zu anspruchsvoll.
Man könnte auch noch anmerken, dass du überhaupt keine Eingabefehler berücksichtigst. Was ist, wenn ich einen falschen Operator angebe? Was ist, wenn ich eine Division durch 0 verlange?
Die if für die Operator in eine Switch Case Anweisung abändern.