2014-02-15 5 views
0

Может ли кто-нибудь сказать мне, почему моя программа не запрашивает пол, когда я запускаю ее, хотя она просит все остальное?Программа не запрашивает пол, хотя она просит все остальное

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 + " "); 


    } 


} 
+0

Предоставляете ли вы действительный возраст? – Leo

ответ

1

nextInt() не потребляет новый символ линии, который вы вводите, поэтому он потребляется следующим in.nextLine(), и поэтому у вас нет возможности ввести пол.

Я предлагаю вам изменить nextInt для nextLine(), а затем вызывать Integer.parseInt() в этой строке, перехватывая необходимое исключение, если строка не является допустимым числом.

1
int age=in.nextInt(); 

Является только потребляя "ИНТ" часть.

The

String gender=in.nextLine(); 

пожирает (пустой) символ новой строки и движется дальше.

Вам нужно использовать оба перед тем, как вы предложите «Пол».

0

Проблема заключается в том, что nextInt() не ожидает новой строки, поэтому вход задерживается в ожидании новой строки. Измените nextInt() на nextLine() и проанализируйте int, и он будет работать.

0

положить in.nextLine() после System.out.println («Введите пол»); line.Because после целого числа он берет новую строку как строку, поэтому просто пропустите, нажав «enter».

Смежные вопросы