Ich stieß auf ein Problem mit meinem Code, den ich glücklicherweise mit einer anderen ähnlichen Frage lösen konnte, aber ich bin neugierig, warum dies geschieht.Warum ignoriert nextInt()/n?
Hier ist eine vereinfachte Version meines Programms:
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
String input = scan.nextLine();
while(!input.equals("x")){
if(input.equals("m")){
String temp = scan.nextLine();
String entry = scan.nextLine();
}
else if(input.equals("f")){
String color = scan.nextLine();
int nothing = scan.nextInt();
}
System.out.println("Enter 'm' for mascara, 'f' for foundation, 'x' to exit");
System.out.println("Entry? :");
input = scan.nextLine();
}
}
Mit diesem Code ‚m‘ eingegeben wird mir keine Probleme, sondern ‚f‘ bewirkt, dass mir unsere die beiden Zeilen zweimal drucken. Warum passiert das genau mit nextInt() und nicht mit nextLine()?
'm'
Enter 'm' for mascara, 'f' for foundation, 'x' to exit
Entry? :
'f'
Enter 'm' for mascara, 'f' for foundation, 'x' to exit
Entry? :
Enter 'm' for mascara, 'f' for foundation, 'x' to exit
Entry? :
Könnten Sie erläutern, was Sie meinen, wenn es eines der führenden Trennzeichen ist? –
Ein Trennzeichen ist ein Zeichen, das die Token begrenzt. d. h. das Zeug zwischen den Token, die Sie ignorieren möchten. Ein vorangestelltes Trennzeichen ist ein Trennzeichen vor dem Token, das Sie lesen möchten. d. h. es "führt" es. (Und ein hinteres Trennzeichen ist ein Trennzeichen * nach * dem Zeichen.) –
Ah, ich sehe jetzt. Danke für eine klare und prägnante Antwort. –