Hallo,
wie der ein oder andere vielleicht bemerkt hat, schraube ich zur Zeit ein bisschen an meinen Java-Basics rum bzw. will Java lernen und deshalb sitze ich jetzt einige Zeit schon an meinem Kaffeeautomaten, welcher über die Konsole ausgeführt wird. Nun habe ich ein weiteres Problem. Und zwar will ich nun überprüfen, wenn jemand eine Münze in den Automaten wirft, die es nicht gibt, wie zum Beispiel 0,51, dann kann man so lange eine Münze einwerfen, bis es eine gültige Münze eingeworfen wird. Nun ist es aber so, dass wenn man einmal eine ungültige Münze eingeworfen hat, dass man auch wenn man eine richtige einwirft, diese doch falsch ist. Ich wäre sehr dankbar, wenn mir einer helfen könnte und mir sagen könnte, warum das so ist, denn ich habe nun schon wirklich viel probiert. Und damit der Code übersichtlicher wird, habe ich den Teil, um den es hier geht in einem Sternenkommentar hervor gehoben:
wie der ein oder andere vielleicht bemerkt hat, schraube ich zur Zeit ein bisschen an meinen Java-Basics rum bzw. will Java lernen und deshalb sitze ich jetzt einige Zeit schon an meinem Kaffeeautomaten, welcher über die Konsole ausgeführt wird. Nun habe ich ein weiteres Problem. Und zwar will ich nun überprüfen, wenn jemand eine Münze in den Automaten wirft, die es nicht gibt, wie zum Beispiel 0,51, dann kann man so lange eine Münze einwerfen, bis es eine gültige Münze eingeworfen wird. Nun ist es aber so, dass wenn man einmal eine ungültige Münze eingeworfen hat, dass man auch wenn man eine richtige einwirft, diese doch falsch ist. Ich wäre sehr dankbar, wenn mir einer helfen könnte und mir sagen könnte, warum das so ist, denn ich habe nun schon wirklich viel probiert. Und damit der Code übersichtlicher wird, habe ich den Teil, um den es hier geht in einem Sternenkommentar hervor gehoben:
Java:
import java.util.Scanner;
public class ProgrammAusführen
{
public static void main(String[] args)
{
//Variablen definieren
byte programm=0;
double guthaben = 0;
double restgeld = 0;
double betrag = 0;
final double KAFFEEPREIS1 = 0.75;
final double KAFFEEPREIS2 = 0.90;
final double KAFFEEPREIS3 = 1.20;
//Programmwahl
Scanner scan = new Scanner(System.in);
System.out.println("Bitte wählen sie ihr Programm: ");
programm = scan.nextByte();
System.out.println("Sie haben das Programm " + programm + " gewählt.");
if (programm >= 1 && programm <= 3)
{
//Überprüfung, welches Programm gewählt wurde
switch(programm)
{
//Kaffee 1
case 1:
{
programm = 1;
System.out.println("Bitte bezahlen sie: " + KAFFEEPREIS1 + "€");
guthaben = scan.nextDouble();
if (guthaben == 0.01 || guthaben == 0.02 || guthaben == 0.05 || guthaben == 0.1 || guthaben == 0.2 || guthaben == 0.5 || guthaben == 1 || guthaben == 2)
{
System.out.println(String.format("Ihr Guthaben beträgt %.2f€", guthaben));
//Nicht genug Geld eingeworfen
while(guthaben < KAFFEEPREIS1)
{
System.out.println("Bitte werfen sie mehr geld ein." );
betrag = scan.nextDouble();
guthaben = guthaben + betrag;
betrag = 0;
}
//Den exakten Betrag eingeworfen
if (guthaben == KAFFEEPREIS1)
{
System.out.println("Vielen Dank, ihr Kaffee wird nun zubereitet." );
}
//Zu viel Geld eingeworfen
if (guthaben > KAFFEEPREIS1)
{
System.out.println("Vielen Dank, ihr Kaffee wird nun zubereitet.");
System.out.println("Nach den Zubereitungsvorgang erhalten sie ihr Restgeld.");
restgeld = guthaben - KAFFEEPREIS1;
System.out.println(String.format("Sie erhalten nun %.2f€ zurück.", restgeld));
}
}
//*******************************************************************************************
else
{
while (guthaben != 0.01 || guthaben != 0.02 || guthaben != 0.05 || guthaben != 0.1 || guthaben != 0.2 || guthaben != 0.5 || guthaben != 1 || guthaben != 2)
{
System.out.println("Ihre Münze ist ungültig, bitte werfen sie eine gültige Münze ein.");
guthaben = scan.nextDouble();
if (guthaben != 0.01 || guthaben != 0.02 || guthaben != 0.05 || guthaben != 0.1 || guthaben != 0.2 || guthaben != 0.5 || guthaben != 1 || guthaben != 2)
{
guthaben = 0;
}
while (guthaben == 0.01 || guthaben == 0.02 || guthaben == 0.05 || guthaben == 0.1 || guthaben == 0.2 || guthaben == 0.5 || guthaben == 1 || guthaben == 2)
{
System.out.println(String.format("Ihr Guthaben beträgt %.2f€", guthaben));
//Nicht genug Geld eingeworfen
while(guthaben < KAFFEEPREIS1)
{
System.out.println("Bitte werfen sie mehr geld ein." );
betrag = scan.nextDouble();
guthaben = guthaben + betrag;
betrag = 0;
}
//Den exakten Betrag eingeworfen
if (guthaben == KAFFEEPREIS1)
{
System.out.println("Vielen Dank, ihr Kaffee wird nun zubereitet." );
}
//Zu viel Geld eingeworfen
if (guthaben > KAFFEEPREIS1)
{
System.out.println("Vielen Dank, ihr Kaffee wird nun zubereitet.");
System.out.println("Nach den Zubereitungsvorgang erhalten sie ihr Restgeld.");
restgeld = guthaben - KAFFEEPREIS1;
System.out.println(String.format("Sie erhalten nun %.2f€ zurück.", restgeld));
}
}
}
}
//*******************************************************************************************
break;
}
//Kaffee 2
case 2:
{
programm = 2;
System.out.println("Bitte bezahlen sie: " + KAFFEEPREIS2 + "€");;
guthaben = scan.nextDouble();
if (guthaben == 0.01 || guthaben == 0.02 || guthaben == 0.05 || guthaben == 0.1 || guthaben == 0.2 || guthaben == 0.5 || guthaben == 1 || guthaben == 2)
{
System.out.println(String.format("Ihr Guthaben beträgt %.2f€", guthaben));
while(guthaben < KAFFEEPREIS2)
{
System.out.println("Bitte werfen sie mehr geld ein." );
betrag = scan.nextDouble();
guthaben = guthaben + betrag;
betrag = 0;
}
if (guthaben == KAFFEEPREIS2)
{
System.out.println("Vielen Dank, ihr Kaffee wird nun zubereitet." );
}
if (guthaben > KAFFEEPREIS2)
{
System.out.println("Vielen Dank, ihr Kaffee wird nun zubereitet.");
System.out.println("Nach den Zubereitungsvorgang erhalten sie ihr Restgeld.");
restgeld = guthaben - KAFFEEPREIS2;
System.out.println(String.format("Sie erhalten nun %.2f€ zurück.", restgeld));
}
}
else
{
System.out.println("Ihre Münze ist ungültig, bitte werfen sie eine gültige Münze ein.");
}
break;
}
//Kaffee 3
case 3:
{
programm = 3;
System.out.println("Bitte bezahlen sie: " + KAFFEEPREIS3 + "€");
guthaben = scan.nextDouble();
if (guthaben == 0.01 || guthaben == 0.02 || guthaben == 0.05 || guthaben == 0.1 || guthaben == 0.2 || guthaben == 0.5 || guthaben == 1 || guthaben == 2)
{
System.out.println(String.format("Ihr Guthaben beträgt %.2f€", guthaben));
while(guthaben < KAFFEEPREIS3)
{
System.out.println("Bitte werfen sie mehr geld ein." );
betrag = scan.nextDouble();
guthaben = guthaben + betrag;
betrag = 0;
}
if (guthaben == KAFFEEPREIS3)
{
System.out.println("Vielen Dank, ihr Kaffee wird nun zubereitet." );
}
if (guthaben > KAFFEEPREIS3)
{
System.out.println("Vielen Dank, ihr Kaffee wird nun zubereitet.");
System.out.println("Nach den Zubereitungsvorgang erhalten sie ihr Restgeld.");
restgeld = guthaben - KAFFEEPREIS3;
System.out.println(String.format("Sie erhalten nun %.2f€ zurück.", restgeld));
}
}
else
{
System.out.println("Ihre Münze ist ungültig, bitte werfen sie eine gültige Münze ein.");
}
break;
}
}
scan.close();
}
else
{
System.out.println("Leider ist das von Ihnen gewählte Programm nicht vorhanden, bitte wählen sie ein anderes.");
}
}
}