# Konsolenprogramm(Taschenrechner)!



## manunana89 (2. Jan 2009)

Hat vll jemand einen Tipp für mich wie ich Benutzereingaben über ein Konsolenprogramm nutzen kann!

Also möcht so etwas wie einen Taschenrechner für die Konsole schreiben!!!
hab aber keine Ahnung mit was ich anfangen soll um Benutzereingaben zuzulassen!

Wäre über Hilfe erfreut


----------



## HLX (2. Jan 2009)

java.sun.com/j2se/1.5.0/docs/api/java/io/InputStreamReader.html

```
InputStreamReader in = new InputStreamReader(System.in) ;
      BufferedReader br = new BufferedReader(in);
      System.out.println("Konsoleneingabe:");
      String text = br.readLine();
```


----------



## L-ectron-X (2. Jan 2009)

Oder ab Java 1.5 die etwas komfortablere Klasse java.util.Scanner


----------



## Guest (2. Jan 2009)

Danke !!!
Aber kann  jemand den groben Umgang damit erklären???


----------



## Spacerat (2. Jan 2009)

Und wieder ein passendes Thema:

Ich wollte schon immer mal nach einer Möglichkeit fragen, die nicht wie "System.in" bis zum Abschluss einer Eingabe (Return) blockt, so dass man ohne AWT (KeyListener) Zeichen für Zeichen lesen und ausgeben kann.

mfg Spacerat


----------



## Fu3L (2. Jan 2009)

```
//Hier wird der BufferedReader erzeugt (wahrscheinlich nur einmal nötig)
InputStreamReader in = new InputStreamReader(System.in) ;
BufferedReader br = new BufferedReader(in);

//Hier gibts du irgendwas aus, damit der User weiß, was er Eintippen soll. 
//Direkt hinter dem Doppelpunkt würde dort die Eingabe geschrieben, 
//wenn der User was tippt.
System.out.println("Konsoleneingabe:");

//Durch diese Methode wird dann eingelesen. Das Programm is solange unterbrochen, 
//bis der Nutzer Enter gedrückt hat. Der eingegebene Text wird dann
//in der String-Variablen text gespeichert und kann von dir weiterverarbeitet werden.
String text = br.readLine();
```

Benutze normalerweise ein Objekt vom Typ Console für Ein- und Ausgabe, deswegen bin ich mir bei dem Kommentar in Zeile 1 nich ganz sicher, aber müsste stimmen  :wink:


----------



## L-ectron-X (2. Jan 2009)

```
import java.util.*;

public class Calc {
   private Scanner scanner;
   
   public Calc() {
      scanner = new Scanner(System.in);

      do {
         System.out.println("\nBitte geben Sie Ihre Rechenaufgabe ein!\n");
         System.out.println("="+calc());
         System.out.print("\nEine weitere Aufgabe rechnen? (j/n) ");
      }
      while(scanner.next().equals("j"));
   }

   public static void main(String[] args) {
      new Calc();
   }
   
   private double calc() {
      try {
         double num1 = scanner.nextDouble();
         String operator = scanner.next();
         double num2 = scanner.nextDouble();
         
         if(operator.equals("+")) {
            return add(num1, num2);
         }
         else if(operator.equals("-")) {
            return sub(num1, num2);
         }
         else if(operator.equals("*")) {
            return mul(num1, num2);
         }
         else if(operator.equals("/")) {
            return div(num1, num2);
         }
      }
      catch(InputMismatchException e) {
         System.out.println("Geben Sie pro Zeile nur eine Zahl bzw. einen Operator ein!\nZwischen zwei Zahlen muss ein Operator eingeben werden.");
         System.exit(1);
      }
      
      return 0.0;
   }
   
   private double sub(double minuend, double subtrahend) {
      return minuend - subtrahend;
   }
   
   private double add(double summand1, double summand2) {
       return summand1 + summand2;
   }
   
   private double div(double dividend, double divisor) {
      return dividend / divisor;
   }

   private double mul(double factor1, double factor2) {
       return factor1 * factor2;
   }
}
```


----------

