Probleme try/catch


Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Boruk

Grünschnabel
Hey,
Ich wollte ein wenig mit try/catch ausprobieren und habe nun folgendes Problem. Falls jemand eine falsche Eingabe macht, wird ja der Catch Block ausgeführt aber halt nur einmal. Was ich eigentlich will ist irgendwie noch eine while Schleife drum, dass solang eigentlich try - catch durchgespielt wird bis eine gültige EIngabe gemacht wird. Jedoch sind alle meine Versuche gescheitert.

Nachfolgend einfach mal zum probieren und hoffe jemand kann mir helfen.

Code:
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("Geschwindigkeit");
        try {

            int tempo = sc.nextInt();
            System.out.println(checker(tempo));

        } catch (Exception e) {
            System.out.println("Ungültige Eingabe \nGeben sie eine Int Zahl ein");
            Scanner two = new Scanner(System.in);

            System.out.println(checker(two.nextInt()));
            two.close();
        }
        sc.close();

    }

    public static String checker(int a) {

        if (a > 80) {
            return "too fast";

        } else {
            return "too slow";

        }

    }
 

zerix

Hausmeister
Moderator
Hi,

Java:
public static void main(String[] args) {
        System.out.println("Geschwindigkeit");
        while(true){
        Scanner sc = new Scanner(System.in);

     
        try {

            int tempo = sc.nextInt();
            System.out.println(checker(tempo));
            break;

        } catch (Exception e) {
            System.out.print("Ungültige Eingabe \nGeben sie eine Int Zahl ein");
        }
        sc.close();
       }
    }

    public static String checker(int a) {

        if (a > 80) {
            return "too fast";

        } else {
            return "too slow";

        }

    }
Ohne testen, ohne Gewähr.

BTW den "checker" finde ich witzig: Man kann nur zu schnell oder zu langsam sein und nie richtig. :)
 

zerix

Hausmeister
Moderator
Stimmt. Ich hatte einen Teil vergessen, aber den verrate ich dir nicht. ;)
Ich denke das Prinzip sollte klar sein, wie das mit der Schleife funktioniert. Als Tipp für den Fehler, du musst die Eingabe aus dem Scanner entfernen.

Viele Grüße
Sascha
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Neue Beiträge