Ich habe gerade Java gestartet und wollte mit der Syntax basteln. Immer wenn ich "F" in gender
und age
einlege, die größer als oder gleich 20 sind, sollte ich aufgefordert werden, einzugeben, wenn der Benutzer verheiratet ist oder nicht, aus irgendeinem Grund überspringt der Scanner es über. Alles andere funktioniert gut.Scanner überspringt Eingabe, möglicher Leerraum?
Output Ich erhalte:
Whats is your gender (M or F): F
First name: Kim
Last name: Kardashian
Age: 32
Are you married, Kim (Y or N)?
Then I shall call you Ms. Kardashian.
Code:
import java.util.Scanner;
public class GenderGame
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int age = 0;
String Gender = null, fName = null, lName = null, M = null, type = null;
System.out.print("Whats is your gender (M or F): ");
Gender = sc.nextLine();
Gender = Gender.toUpperCase();
System.out.print("First name: ");
fName = sc.nextLine();
System.out.print("Last name: ");
lName = sc.nextLine();
System.out.print("Age: ");
age = sc.nextInt();
if(Gender.equals("F") && age >= 20)
{
System.out.print("\nAre you married, " + fName + " (Y or N)? ");
M = sc.nextLine();
M = M.toUpperCase();
if(M.equals("Y"))
{
type = "Mrs. ";
type = type.concat(lName);
}
else
{
type = "Ms. ";
type = type.concat(lName);
}
}
else if(Gender.equals("F") && age < 20)
{
type = fName.concat(" " + lName);
}
else if(Gender.equals("M") && age >= 20)
{
type = "Mr. ";
type = type.concat(lName);
}
else if(Gender.equals("M") && age < 20)
{
type = fName.concat(" " + lName);
}
else
{
System.out.println("There was incorrect input. EXITING PROGRAM");
System.exit(1);
}
System.out.println("\nThen I shall call you " +type+ ".");
}
}