F
Firephoenix
Gast
Bin komplett neu hier, also nicht so böse sein zu mir ^^
Als Neueinsteiger in Java (früher schon Anfangserfahrung mit Delphi etc gemacht - gute OOP Kenntnisse)
will ich mich jetzt auch in Java einarbeiten.
Dementsprechend habe ich mit einem einfachem Additionsprogramm angefangen und dieses weiter ausgebaut. Mittlerweile habe ich einen einfachen Rechner der mit 2 Zahlen rechnen kann.
Diesen wollte ich jetzt um das Abfangen von Falscheingaben erweitern.
Das ist der Programmanfang:
Problem macht jetzt diese Schleife:
Sinn ist es, bei einer falschen Eingabe den Fehler abzufangen und auf eine neue Eingabe zu warten.
bei einem Test im Debugger ist mir aber aufgefallen, dass die Zeile
einfach übersprungen wird, ohne eine neue Eingabe abzufragen.
Daher läuft das Programm bei einer richtigen Eingabe weiter, bei einer Falschen kommt die Meldung "Falsche Eingabe" in einer Dauerschleife.
Für Hilfe wäre ich sehr dankbar, da meine Bücher und auch google mich zu keiner Lösung führten - meine Eigene Javakenntnis reicht hier leider nicht aus. Daher wären Antworten nett, auch andere Lösungsvorschläge nehme ich gerne an.
Lg,
Firephoenix
Als Neueinsteiger in Java (früher schon Anfangserfahrung mit Delphi etc gemacht - gute OOP Kenntnisse)
will ich mich jetzt auch in Java einarbeiten.
Dementsprechend habe ich mit einem einfachem Additionsprogramm angefangen und dieses weiter ausgebaut. Mittlerweile habe ich einen einfachen Rechner der mit 2 Zahlen rechnen kann.
Diesen wollte ich jetzt um das Abfangen von Falscheingaben erweitern.
Das ist der Programmanfang:
Java:
import java.util.*;
import java.io.IOException;
public class Test {
public static void main(String[] args)
throws IOException
{
int a = 0;
float b=0 ,c=0;
boolean falsch;
Scanner scanner = new Scanner(System.in);
falsch = true;
System.out.println("Geben sie bitte die erste Zahl ein:");
do
{
try
{
b = scanner.nextFloat();
falsch = true;
}
catch (InputMismatchException teste)
{
System.out.println("Falsche Eingabe");
falsch = false;
}
}
while(falsch);
.
.
.
Problem macht jetzt diese Schleife:
Java:
do
{
try
{
b = scanner.nextFloat();
falsch = true;
}
catch (InputMismatchException teste)
{
System.out.println("Falsche Eingabe");
falsch = false;
}
}
while(falsch);
Sinn ist es, bei einer falschen Eingabe den Fehler abzufangen und auf eine neue Eingabe zu warten.
bei einem Test im Debugger ist mir aber aufgefallen, dass die Zeile
Java:
b = scanner.nextFloat();
Daher läuft das Programm bei einer richtigen Eingabe weiter, bei einer Falschen kommt die Meldung "Falsche Eingabe" in einer Dauerschleife.
Für Hilfe wäre ich sehr dankbar, da meine Bücher und auch google mich zu keiner Lösung führten - meine Eigene Javakenntnis reicht hier leider nicht aus. Daher wären Antworten nett, auch andere Lösungsvorschläge nehme ich gerne an.
Lg,
Firephoenix