Michael : Der GEldautomat

Ich grüße euch!
Also ich versuche einen Geldautomaten zu basteln.
Lieder hab ich nun schon ein Problem und zwar:
WEnn man die 1 wählt kommt die richtige Ausgabe.
Wenn man die 2 wählt auch, nur dann wenn man die 10,11,... drückt kommt "Der Befehl"10" ist entweder falsch geschrieben oder konnte nich gefunden werden. Woran liegt das?

import java.io.*;

public class Joe2
{

public Joe2()
  {
  }
public static void main(String [] args) throws IOException

{

int iEingabe;
  String SEingabe;

System.out.println("Herzlich Wilkommen");
  System.out.println("bei der Anke Bank");
  System.out.println("-----------------MENUE---------------");
  System.out.println("Um Ihren aktuellen Kontostand abzufragen drücken Sie bitte die 1");
  System.out.println("Um Geld abzuheben drücken Sie bitte die 2");

BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
  SEingabe = input.readLine();
  iEingabe = Integer.parseInt(SEingabe.trim());
  System.out.println(iEingabe);

if (iEingabe==1)
  {
    System.out.println("Ihr aktueller Kontostand beträgt 345,79 Euro");
    System.out.println("Um zum MEnü zurück zugelangen drücken Sie bitte die 3");
  }
  else if (iEingabe==2)
  {
    System.out.println("");
    System.out.println("Welchen Betrag möchten Sie abheben?");
    System.out.println("");
    System.out.println("Für 20 Euro wählen Sie bitte 10");
    System.out.println("Für 50 Euro wählen Sie bitte 11");
    System.out.println("Für 100 Euro wählen Sie bitte 12");
    System.out.println("Für 200 Euro wählen Sie bitte 13");
    System.out.println("Für 300 Euro wählen Sie bitte 14");
    System.out.println("Um zum Menü zurück zugelangen drücken Sie bitte die 3");

if (iEingabe==10)
    {
     System.out.println("20 Euro werden Ihnen nun ausgezahlt!");
   }
  }
}
}

  1. Glück auf!

    [Viel richtiger Java-Quellcode]
        if (iEingabe==1)
      {
        System.out.println("Ihr aktueller Kontostand beträgt 345,79 Euro");
        System.out.println("Um zum MEnü zurück zugelangen drücken Sie bitte die 3");
      }
      else if (iEingabe==2)
      {

    So, bis hierhin richtig, aber dann:

    [Viele System.outs]
        System.out.println("Um zum Menü zurück zugelangen drücken Sie bitte die 3");

    An dieser Stelle fehlt schlicht und ergreifend die Anweisung, dass eine Eingabe eingelesen werden soll, und wie diese verarbeitet werden soll. Da der Wert von iEingabe nicht neu gesetzt wird, kann

    if (iEingabe==10)

    niemals true werden.

    Gruß,
    der Juve

    1. Hm also muss ich den Buffered reader noch mal neu einsetzen an dieser Stelle?

      1. Glück auf!

        Hm also muss ich den Buffered reader noch mal neu einsetzen an dieser Stelle?

        Jein. Einsetzen schon, aber nicht neu. Du kannst den bisher verwendeten Recyclen an dieser Stelle :) Des weiteren muss natürlich auch das parsen in die abzufragende Variable an die Stelle.

        Gruß,
        der Juve

  2. Hallo!»» Ich grüße euch!

    Also ich versuche einen Geldautomaten zu basteln.
    Lieder hab ich nun schon ein Problem und zwar:
    WEnn man die 1 wählt kommt die richtige Ausgabe.
    Wenn man die 2 wählt auch, nur dann wenn man die 10,11,... drückt kommt "Der Befehl"10" ist entweder falsch geschrieben oder konnte nich gefunden werden. Woran liegt das?

    :-) Daran, dass dein Java Programm zu dem Zeitpunkt schon beendet ist und du wieder auf der OS Konsole bist. Dort gibts du 10 ein und dein OS kennt den Befehlt 10 halt nicht.

    Du musst in dem Zweig in dem du das Menü für das Auszahlen anbietest, bevor du auf iEingabe==10 prüfst, nochmal eine Eingabeaufforderung einbauen.

    mfg
      frafu