Du hast ein Problem bei der Verwendung des Scanners. Dazu hole ich einmal etwas aus.
Der Scanner kann zwei Eingabequellen auf zwei Arten verarbeiten:
1) Tokenbasiert. Hier wird lediglich ein Token verarbeitet. Token sind durch Tremnnzeichen getrennt (Per Default sind dies sogenannte Whitespace). Tokenbasierte Aufrufe sind next, nextInt, nextDouble, .... Hier werden ggf. erst alle Trennzeichen gelesen und dann das Token. Die Trennzeichen nach dem Token bleiben noch in der Eingabe.
2) Zeilenbasiert. Hier wird die Eingabe bis zum nächsten Zeilenwechsel gelesen. Hier wird alles gelesen bis zum nächsten Zeilenwechsel. Dann wird auch der Zeilenwechsel gelesen.
Bei Dir bedeutet dies:
Du rufst nextDouble auf - der User gibt z.B. ein: "1\n" (\n sei die Eingabetaste). Es gibt keine Whitespace, es wird direkt das Token gelesen ("1") und in der Eingabe bleibt "\n".
Du rufst wieder nextDouble auf. Da kein Token da ist, wird auf eien Eingabe gewartet. Nehmen wir mal an: 2 und Enter. In der Eingabe ist somit nun "\n2\n". Es werden nun alle Whitespace gelesen und verworfen. Es bleibt: "2\n". Dann wird das Token gelesen (2) und es bleibt "\n".
Nun rufst Du nextLine() auf. Das heisst, der Scanner schaut, ob es bereits ein Zeilenumbruch gibt: Und siehe da: das gibt es noch, denn es ist ja "\n" in dem Puffer.
Somit kann das direkt durchlaufen und Du hast einfach eine Rückgabe vom leeren String und der Puffer ist nun leer.
Somit kann man sich als Lösung merken:
Wechsel von Token-Basiert zu Zeilenbasierter Abfrage: Einfach ein scanner.nextLine() dazwischen aufrufen.
Umgedreht (Wechsel zeilenbasiert zu tokenbasiert) ist nichts notwendig.
Also vor deine Zeile
String Operator = scanner.nextLine()
einfach ein zusätzliches
scanner.nextLine()
das sozusagen das letzte Enter aus dem Puffer entfernt.
Der Hinweis zu den Stringvergleichen von
@coffee drinker ist natürlich richtig. Strings werden nicht mit == verglichen sondern mit equals. Die Abfragen sollten also so aussehen:
if ("*".equals(Operator)) {
Ansonsten noch der Hinweis: Variablennamen werden in der Regel klein geschrieben, also operator und nicht Operator. Und zahl1 bzw. zahl2.