Findet ihr den Taschenrechner gut?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Es ist gut, dass du sinnvolle Bezeichner wählst. Nichtsdestotrotz gibt es noch Verbesserungspotenzial, unter anderem hinsichtlich der Funktionalität.

Folgend verschiedene Tipps:

  1. Bleibe bei deinen Bezeichnern ganz konsequent einheitlich (z.B. Rechner statt Calc, scanner statt scan).
  2. Die Wiederholungen würde ich über eine do-while-Schleife steuern. Als Bedingung kannst du wie gehabt prüfen, ob der Nutzer eine 1 oder 2 eingibt.
  3. Eine Division durch 0 sollte nicht möglich sein.
  4. Invalide Operationen (z.B. die Eingabe von -1 oder 4) sind noch unbehandelt. Es wäre gut, in dem Fall eine Fehlermeldung auszugeben und die Schleife neu zu starten (continue).
  5. Die Variablen zahl und zahl2 würde ich innerhalb der Schleife erstellen, da sie nur in der Schleife gebraucht werden. Deklaration und Definition kann man dafür auch zusammenfassen.
  6. Mehrmaliger Rechtschreibfehler: Die Höflichkeitsform Sie wird mit einem großen S geschrieben, andernfalls handelt es sich um den Plural.
  7. Für die Prüfung der Operation kannst du ruhig mit einem char/String arbeiten.
  8. Ich persönlich würde statt if-else if ein switch-Konstrukt verwenden. Wenn du bezüglich Operationen bei der Eingabe einer Ganzzahl zwischen 0-3 (Grenzen inklusiv) bleibst, könntest du den ersten Prüfblock via Array kürzen (s. u.).
String[] operationsVerben = new String[] { "subtrahieren", "addieren", "dividieren", "multiplizieren" };
System.out.printf("Mit welcher Zahl möchten Sie %s?%n", operationsVerben[operation]);
Lucaaas174 
Fragesteller
 30.10.2023, 08:00

Habe so manches wie switch und do while noch nicht gelernt danke

0

Joa er ist nicht schlecht.

Der code funktioniert, das einzige Problem sind die Konventionen.

Statt den if und else if könnte man ein case machen

Und normalerweise macht man ein while(true), und schreibt system.exit() wenn das Programm beendet werden soll. (Wenn danach nix mehr kommt)

Das ist nur wie man es schreiben “sollte“, der code funktioniert aber auch so.

Lucaaas174 
Fragesteller
 29.10.2023, 19:40

Okay danke!

0