2013-10-27 2 views
-2

Если вы посмотрите на строку кода, где он говоритJava пропускает строку кода? Очень простой Java

System.out.println("Please enter the firstname of your favourite female author"); 
mFirstName = scanner.nextLine(); 
System.out.println("Please enter her second name"); 
mSurname = scanner.nextLine(); 

Он полностью пропускает ПгвЬЫате часть и идет прямо на фамилию? Любые идеи, почему это происходит?

import java.util.*; 
    'class university{ 
     public static void main(String[] args){ 
      Scanner scanner = new Scanner(System.in); 
      Person2 mPerson, fPerson; 

     String fFirstName, fSurname, mFirstName, mSurname; 
     int fAge, mAge; 

     System.out.println("Please enter the firstname of your favourite female author"); 
     fFirstName = scanner.nextLine(); 
     System.out.println("Please enter her second name"); 
     fSurname = scanner.nextLine(); 
     System.out.println("Please enter her age"); 
     fAge = scanner.nextInt(); 
     System.out.println("Please enter the firstname of your favourite female author"); 
     mFirstName = scanner.nextLine(); 
     System.out.println("Please enter her second name"); 
     mSurname = scanner.nextLine(); 
     System.out.println("Please enter her age"); 
     mAge = scanner.nextInt(); 
     System.out.print(fPerson); 
    } 
} 
+0

Это скорее всего вызвано 'scanner.nextInt', которое оставит новый строковый символ в потоке, который затем выбирается следующей' scanner.nextLine'. Попробуйте добавить вызов 'scanner.nextLine' ПЕРЕД следующим вопросом – MadProgrammer

ответ

1

fAge = scanner.nextInt(); не потребляет линии окончание.

Добавить scanner.nextLine() после этого, чтобы вставить символ конца строки, и он будет работать.

2

Добавить nextLine() звонок после того, как вы позвоните nextInt(). Потому что nextInt() не заканчивает линию. Таким образом, следующий вызов nextLine() вернет пустую строку.

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