匿名使用者
匿名使用者 發問時間: 電腦與網際網路程式設計 · 6 年前

java的nextline的問題

System.out.printf("\nPlease enter the first name of employee 1 : ");

String FirstNameOfUser = input.nextLine();

System.out.printf("Please enter the last name of employee 1 : ");

String LastNameOfUser = input.nextLine();

System.out.printf("Please enter the month salary of employee 1 : ");

double SalaryOfUser = input.nextDouble();

User1.SetFirstName( FirstNameOfUser );

User1.SetLastName( LastNameOfUser );

User1.SetSalary( SalaryOfUser*12 );

System.out.printf("\nPlease enter the first name of employee 2 : ");

FirstNameOfUser = input.nextLine();

System.out.printf("Please enter the last name of employee 2 : ");

LastNameOfUser = input.nextLine();

System.out.printf("Please enter the month salary of employee 2 : ");

SalaryOfUser = input.nextDouble();

我上面粗體字在執行的時候會被略過

請問這是什麼原因?

我在多打一個

FirstNameOfUser = input.nextLine();

這樣就行了?

爬文好久都找不到原因 ..

1 個解答

評分
  • 最佳解答

    它不是被略過,

    而是,

    System.out.printf("Please enter the month salary of employee 1 : ");

    double SalaryOfUser = input.nextDouble();

    你用的是 input.nextDouble();

    當你輸出 salary of employee 1 :

    然後你輸入 數字 enter

    nextDouble() 只接收了 數字,你按的 enter 並沒有接收,但是 enter 是有控制碼的(\r\c for window system)

    因此,你再來的 nextLine(); 是接收了 enter 的控制碼

    所以,你要再多一行 nextLine(); 才會 接收

    name of employee 2 :

    後的輸入

還有問題?馬上發問,尋求解答。