0

メソッド input.nextLine() を使用すると、プログラムの実行中に文字列のスペースが許可されることは誰もが知っていますが、ループ内でこのメソッドを使用すると、実行はステートメントをスキップします。誰でも理由を説明できますか?

メニューで試しています:

コード:

do {
    System.out.print("Enter your choice: ");
    choice = input.nextInt();

    switch (choice) {

    case 4:
        System.out.println("Please give the full information of the project ");
        System.out.print("Project code: "); int code = input.nextInt();
        System.out.print("Project Title: "); String title = input.nextLine();
        System.out.print("Project Bonus in Percent: "); double bip = input.nextDouble();
        Project proj4 = new Project(code4,title4,bip4);
        System.out.print("Employee ID you're adding project to: "); String id4=input.next();
        ers.addProjectToEmployee(id4,proj4);
        break;

    /* more cases  */
    }
} while (choice !=13);

ケース 4 のステートメント 3 を確認してください。

プログラムの実行中に起こったことは次のとおりです。

Enter your choice: 4
Please give the full information about the project 
Project code: 66677
Project Title: Project Bonus in Percent: 
4

1 に答える 1

1

input.nextInt()は行末を読み取らないため、効果.nextLine()がエスケープされているのはなぜですが、実際に.nextLine().nextInt(). .nextLine()の後に余分が必要です.nextInt()


アップデート:

以下をせよ:

System.out.print("Project code: "); int code = input.nextInt();
input.nextLine(); // this is what you need to add
System.out.print("Project Title: "); String title = input.nextLine();
于 2012-11-03T16:40:45.427 に答える