0

私はJavaが初めてで、最初の「プログラム」を作成しました。これは、入力したものを吐き出す単純な入出力プログラムです。

import java.util.Scanner;

class Input{
   public static void main(String args[]){
      int zip;
      int a;
      double e = 2.718281828459045;
      String name;

      Scanner in = new Scanner(System.in);

      System.out.println("Enter your zip code: ");
      zip = in.nextInt();

      System.out.println("Enter your name: ");
      name = in.nextLine();

      System.out.println("Enter an integer: ");
      a = in.nextInt();

      System.out.println(name+", "+"your zip code is "+zip+" and e*"+a+" is "+e*a);

     }
}

これを実行すると、郵便番号を入力すると、次に整数入力に移動します。Enter キーを押すと、入力ストリームが終了文字を飲み込んでいると思われます。簡単な修正はありますか、それとも私はただの Java バカですか?

ありがとう、そう!

4

1 に答える 1

1

間に

System.out.println("Enter your zip code: ");
zip = in.nextInt();

System.out.println("Enter your name: ");
name = in.nextLine();

を追加しin.nextLine()ます。そう

System.out.println("Enter your zip code: ");
zip = in.nextInt();

in.nextLine(); // consume dangling eol characters

System.out.println("Enter your name: ");
name = in.nextLine();

このメソッドScanner#nextInt()は、 を作成するために必要なバイトのみを読み取り、その後に続くものは読み取りintません。整数を入力した後に Enter キーを押すと、キャリッジ リターン/改行文字がぶら下がります。Scanner#nextLine()それを取り除くにはが必要です。

于 2013-10-16T03:25:01.063 に答える