Wie kann ich einen User Input mit einer If-Anweisung verbinden?

Celado

Neues Mitglied
Hallo, ich bin noch ziemlich am Anfang von Java. Also ein Einsteiger.

Kann mir jemand helfen? Ich weiß, auch nach längere Recherche nicht, was ich falsch mache.

Java:
import java.util.Scanner;

public class TEST {

public static void main(String[] args) {

Scanner input = new Scanner (System.in);
System.out.println("Alter: ");

int userinput = input.nextLine ();
if(userinput < 16) {
System.out.println("Kein Alkohol erlaubt");
}
else if (userinput >16) {
System.out.println("Alkohol erlaubt");
}

}

}
 
Meinst du den logischen Fehler oder den Compilerfehler in deinem Programm? Wenn man beides beheben will, kommst du zu:
Java:
import java.util.Scanner;
public class TEST {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Alter: ");
        int userinput = Integer.parseInt(input.nextLine());
        if (userinput < 14) {
            System.out.println("Kein Erwerb und Konsum von Alkohol erlaubt");
        } else if (userinput < 16) {
            System.out.println("Erwerb und Konsum von Sekt, Wein und Bier in Begleitung "
                    + "und mit Erlaubnis einer erziehungsberechtigten Person erlaubt");
        } else if (userinput < 18) {
            System.out.println("Erwerb und Konsum von Sekt, Wein und Bier erlaubt");
        } else {
            System.out.println("Erwerb und Konsum jeglicher Arten Alkohol erlaubt");
        }
    }
}
;-)
 
int userinput = input.nextLine ();
gibt einen String und keinen int Wert zurück.
Java:
Scanner scanner = new Scanner(System.in);
        int value = 0;
        try {
            value = Integer.parseInt(scanner.nextLine());
        } catch (NumberFormatException e) {
            // Falsche Eingabe hier behandeln
        }
        if( value > 16 ) {
            // hier die Bedingung
        }
        scanner.close(); // muss geschlossen werden
 
Oder einfach dein
> input.nextLine();
mit
> input.nextInt();
ersetzen. Dann sollte das Programm genau das machen, was du möchtest.
Den Fehler hätte dir eine IDE aber auch anzeigen müssen, probier mal Eclipse, NetBeans, oder IntelliJ aus.

Edit: Und nicht vergessen den Scanner wieder mit
> input.close();
zu schließen.
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben