Frage zu Scanner

Bitte aktiviere JavaScript!
Ich habe folgendes Programm zur Illustration der Klasse Scanner

Code:
import java.util.Scanner;

public class Benutzereingabe{

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

        //////////// Eingabe von double-Werten    /////////////////
        double y;
        System.out.println("Bitte geben Sie einen double-Wert ein!");
    
        y = console.nextDouble();
    
        System.out.println("Es wurde " + y + " eingegeben");
    
        //////////// Eingabe von Strings    /////////////////
        String s;
        System.out.println("Bitte geben Sie eine Zeichenkette ein!");
    
        s = console.nextLine();
    
        System.out.println("Es wurde " + s + " eingegeben");
    
    }
}
Das erste, das mich wundert ist, dass ich den double-Wert mit Kommastrich, statt Kommapunkt (also 2,4, statt 2.4) eingegeben muss. Anderenfalls kommt es zu einem Fehler. Ist das normal?

Weiters blockiert das Programm in der Zeile
s = console.nextLine()
nicht. Sattdessen wird sofort
"Es wurde eingegeben"
ausgegeben.
Wieso?

Danke schon einmal für Antworten
 
A

Anzeige


Vielleicht hilft dir dieser Kurs hier weiter: (hier klicken)
Ja... ändern kannst du das über das einstellen des entsprechenden Locales.
Java:
new Scanner(System.in).useLocale(Locale.US);

Weiters blockiert das Programm in der Zeile
s = console.nextLine()
nicht. Sattdessen wird sofort
"Es wurde eingegeben"
ausgegeben.
Wieso?
Die Frage wird oft gefragt:
 
Java:
console.nextDouble();
liest nur die Zahl und nicht den folgenden Zeilenumbruch. Deshalb musst du danach noch
Java:
console.nextLine();
aufrufen (ohne den Rückgabewert einer Variablen zuzuweisen).
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben