Erste Schritte Taschenrechner mit beliebig vielen Zahlen

vulturas

Mitglied
Guten Abend allerseits,

wir sollen einen einfachen Taschenrechner mit den Operatoren "+" und "-" programmieren.
Einzige Bedingungen, bei denen ich nicht weiter komme, sind:
  • Eingabe von beliebig vielen Zahlen möglich
  • Abbruchkriterium ist ein Operator
Anbei mein bisheriger Code:

Java:
package rechner;

import java.util.Scanner;

public class EinfacherRechner {
      public static double addition(double zahl1, double zahl2) {
        return zahl1+zahl2;
      }

      public static double subtraktion(double zahl1, double zahl2) {
        return zahl1-zahl2;
      }
   
    public static void main(String [] args) {
       
        Scanner eingabe = new Scanner(System.in);
        System.out.print("Erste Zahl eingeben: ");
        double zahl1 = eingabe.nextDouble();
        System.out.print("Zweite Zahl eingeben: ");
        double zahl2 = eingabe.nextDouble();

        Scanner zeichen = new Scanner(System.in);
        System.out.print("Möchten Sie eine Addition oder eine Subtraktion durchführen: ");
        String operator = zeichen.nextLine();
       
        zeichen.close();
        eingabe.close();
       
        switch(operator) {
        case "+":         case "plus":    case "addieren":        case "Addition":        case "addition":        System.out.println(addition(zahl1, zahl2)); break;
        case "-":         case "minus":    case "subtrahieren":    case "Subtraktion":     case "subtraktion":        System.out.println(subtraktion(zahl1, zahl2)); break;
        default: System.out.print("Ungültige Eingabe.");
        }
       
    }
}

Ich wäre über Hilfe sehr dankbar 🙂

Liebe Grüße
 
Dann brauchst Du keinen Scanner, sondern hast alle Werte bereits im Parameter args von main vorliegen, der ein String-Array ist. Die Werte werden auf der Befehlszeile an den Rechner übergeben.
 
Das Programm wird aufgerufen mit java EinfacherRechner 3 4 5 6 +, dann bekommt Deine main-Methode ein Array {"3", "4", "5", "6", "+"} übergeben. Wenn Du innerhalb von main z. B. System.out.println(arr[0]); schreibst, würde die erste Zeichenkette des Arrays arr ausgegeben, also im Beispiel "3". Mit arr[1] greifst Du auf das zweite Element (hier: "4") zu usw. Die Anzahl der übergebenen Parameter entspricht der Länge des Arrays, also arr.length.

EDIT: Beispielhafte Ausgabe aller übergebenen Parameter, jeweils einen pro Zeile:
Java:
public static void main(String[] args) {
    System.out.printf("Es wurden %d Parameter übergeben:\n", arr.length);
    for (int i = 0; i < arr.length; i++) {
        System.out.println(args[i]);
    }
}
 

Neue Themen


Zurück
Oben