Wie man boolean Benutzer-Eingabe mit scanner aus?

Also ich habe um den Benutzer zu Fragen, ob Sie sind über 18 und Sie haben die Antwort mit true oder false. Und halten looping, bis Sie geben Sie den richtigen Eingang

So weit, ich habe diese

boolean b = false;
do {
    try {
        System.out.print("Are you above 18?");
        Scanner n = new Scanner(System.in);
        boolean bn = s.nextBoolean();

        if (bn == true) {
            //do stuff
        } else if (bn == false) {
            //do stuff
        }

    } catch (InputMismatchException e) {
        System.out.println("Invalid input!");
    }
} while (!b);

JEDOCH, es wird nicht funktionieren, da die Schleife immer weiter, und es wird nicht Lesen Sie den Eingang rechts, und mein if-Anweisungen. Wie kann ich dieses Problem beheben? Danke!

  • Ich gehe mit y/n option in diesem Fall.
  • bn == true redundant ist. bn wertet einen booleschen Wert.
  • Sind Sie Einstellung Ihre b variable true im inneren eine Ihrer Bedingungen? Ihre Schleife wird nicht aufhören, bis b ist true und es ist nicht Referenz, die irgendwo in der Schleife. Meinst du zu tun, während (!bn)?.
  • Nur aus dem Thema, tauschen Sie Ihre if(bn == true) mit if(bn).
  • Was Eingabewerte haben Sie versucht?
InformationsquelleAutor tash517 | 2014-05-15
Schreibe einen Kommentar