Java 该计划不要求性别,尽管它要求其他一切

Java 该计划不要求性别,尽管它要求其他一切,java,Java,有人能告诉我为什么我的程序在运行时不要求性别,尽管它要求其他一切 import java.util.*; public class registration { public static void main (String[] args) { Scanner in=new Scanner(System.in); System.out.println("Enter first name"); String firstName=in.nextLine()

有人能告诉我为什么我的程序在运行时不要求性别,尽管它要求其他一切

import java.util.*;

public class registration {


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


    System.out.println("Enter first name");
    String firstName=in.nextLine();
    System.out.println ("Enter surname");
    String surname=in.nextLine();
    System.out.println ("Enter address");
    String address=in.nextLine();
    System.out.println ("Enter age");
    int age=in.nextInt();
    System.out.println ("Enter gender");
    String gender=in.nextLine();
    System.out.println ("Enter telephone contact");
    String teleContact=in.nextLine();
    System.out.println ("Enter P for Platinum, G for Gold or S for Silver membership type");
    String memberType=in.nextLine();
    int birth;
    birth=2014-age;
    String surname2;
    surname2 = surname.toUpperCase();
    String memberId;
    memberId=memberType + surname2 + birth;
    System.out.printf ("MEMBER ID : " + memberId + "   ");
    System.out.printf ("FIRSTNAME : " + surname + "   ");
    System.out.printf ("SURNAME : " + firstName + "   ");
    System.out.printf ("AGE : " + age + "   ");
    System.out.printf ("GENDER : " + gender + "   ");
    System.out.printf ("TELEPHONE : " + teleContact + "   ");
    System.out.printf ("MEMBERSHIP TYPE : " + memberType + "   ");
    System.out.printf ("ADDRESS : " + address + "   ");


    }


}
仅使用“int”部分

使用(空)换行符并继续


在提示输入性别之前,您需要同时使用这两个选项。

问题是nextInt()不需要换行,因此输入会暂停,等待换行。将nextLine()更改为nextLine(),并解析int,它就会工作。

nextInt()不会使用您输入的新行字符,因此它会被.nextLine()中的以下字符使用,因此您没有机会输入性别


我建议您更改nextLine()的nextInt,然后在该行上调用Integer.parseInt(),捕捉必要的异常,以防该行不是有效数字。

put
in.nextLine()
after System.out.println(“输入性别”);行。因为在整数之后,它将换行作为字符串,所以它只需按“enter”键跳过即可。

是否提供有效的年龄?
int age=in.nextInt();
 String gender=in.nextLine();