Sers Leute...Ich will einen Automat schreiben. Das klappt soweit ganz gut! Nur wenn ich das Programm laufen lassen, dann kommt wenn ich Geld 1 eingebe immer 100cent! jedes mal!! Bei 2 interpretiert er es als 10 cent, bei 3 als 20cent. Bei 1 macht er aber immer 100cent draus. Woran kann das liegen?
Java:
import java.io.*;
class Fahrkartenautomat
{
public static void main (String[] args) throws IOException
{
Reader reader=new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(reader);
int tarif=0;
while (tarif > 3 || tarif <= 0)
{
tarif=Eingabe.readInt(input, "Tarif","Wählen Sie einen Tarif: 1=Tarif 1; 2=Tarif 2; 3=Tarif 3"); // Tarifwahl
}
int geldspeicher = 0;
int geld = 0;
if (tarif == 1)
{
int preis = 150;
int betrag = 150;
System.out.println("Werfen sie 1,50 Euro ein.");
while (geldspeicher < preis)
{
betrag = preis - geldspeicher;
System.out.println ("Bitte werfen Sie noch "+betrag+" Cent(s) ein.");
geld=Eingabezwei.readInt(input, "Cent","1 ergibt 5cent, 2 10cent..etc.");
if (geld == 1)
geld = 5;
if (geld == 2)
geld = 10;
if (geld == 3)
geld = 20;
if (geld == 4)
geld = 50;
if (geld == 5)
geld = 100;
if (geld == 6)
geld = 200;
if (geld == 7)
geld = 500;
if (geld == 8)
geld = 1000;
if (geld == 9)
geld = 2000;
geldspeicher = geldspeicher + geld;
if (geldspeicher == preis)
{
System.out.println ("Ihr Ticket wird gedruckt. Vielen Dank");
break;
}
if (geldspeicher >= preis)
{
betrag = geldspeicher - preis;
System.out.println ("Ihr Ticket wird gedruckt. Sie bekommen "+betrag+" zurück");
break;
}
System.out.println ("Bitte geben Sie mehr Geld ein");
}
}