0

プログラムを実行しようとすると、いくつかのエラー メッセージが表示されます。主なエラー メッセージは、「エラー: 変数キーボードは既にメソッド main(String []) で定義されています」です。

プログラムで main(String []) を複数回、または最初に持っているはずですか?ここで他に何が間違っている可能性がありますか?

これが私のプログラムの始まりです:

public static void main(String[]args)
{
    String firstName, lastName;
    int moviesDownloaded, stateResidency;
    double movieCost, netPayment, tax, discount, totalCharge, payment, taxRate;

    System.out.println("Enter your first name:");
    Scanner keyboard = new Scanner(System.in);
    firstName = keyboard.nextString();

    System.out.println("Enter your last name:");
    Scanner keyboard = new Scanner(System.in);
    lastName = keyboard.nextString();

    System.out.println("Enter the number of movies downloaded:");
    Scanner keyboard = new Scanner(System.in);
    moviesDownloaded = keyboard.nextInt();

    System.out.println("Enter the cost per movie:");
    Scanner keyboard = new Scanner(System.in);
    movieCost = keyboard.nextDouble();

    System.out.println("Indicate your state of residency. Enter 1 for Mississippi or 2 for any other state.");
    Scanner keyboard = new Scanner(System.in);
    stateResidency = keyboard.nextInt();
4

3 に答える 3

4

キーボードを一度だけ宣言して初期化してから使用する必要があります。したがってScanner keyboard = new Scanner(System.in);、最初の行を除いて、 type: のすべての行を削除します。そうしないと、同じ変数を複数回宣言しようとするため、Java が文句を言います。

于 2013-02-04T09:59:39.480 に答える
1

これはこの時点で長い間解決されていると思いますが、Ivaylo Strandjev の回答が選択されていないため、私はそれに遭遇し、閉鎖が本当に好きです。また、他の誰かがこれに出くわした場合に備えて。

エラーは、このスコープで既に変数キーボードを定義しており、再度定義しようとしていることを示しています。Ivaylo Strandjev が言っていたように。次のことを試すことができます。

1宣言部分を削除

public static void main(String[]args) {
String firstName, lastName;
int moviesDownloaded, stateResidency;
double movieCost, netPayment, tax, discount, totalCharge, payment, taxRate;

System.out.println("Enter your first name:");
Scanner keyboard = new Scanner(System.in);
firstName = keyboard.nextString();

System.out.println("Enter your last name:");
keyboard = new Scanner(System.in); //-----changed
lastName = keyboard.nextString();

System.out.println("Enter the number of movies downloaded:");
keyboard = new Scanner(System.in); //-----changed
moviesDownloaded = keyboard.nextInt();

System.out.println("Enter the cost per movie:");
keyboard = new Scanner(System.in);//-----changed
movieCost = keyboard.nextDouble();

System.out.println("Indicate your state of residency. Enter 1 for Mississippi or 2 for any other state.");
keyboard = new Scanner(System.in);//-----changed
stateResidency = keyboard.nextInt();`

またはこれ、新しい変数名を変更します

public static void main(String[]args){
String firstName, lastName;
int moviesDownloaded, stateResidency;
double movieCost, netPayment, tax, discount, totalCharge, payment, taxRate;

System.out.println("Enter your first name:");
Scanner keyboard1 = new Scanner(System.in);
firstName = keyboard1.nextString();

System.out.println("Enter your last name:");
Scanner keyboard2 = new Scanner(System.in);//-----changed
lastName = keyboard2.nextString();

System.out.println("Enter the number of movies downloaded:");
Scanner keyboard3 = new Scanner(System.in);//-----changed
moviesDownloaded = keyboard3.nextInt();

System.out.println("Enter the cost per movie:");
Scanner keyboard4 = new Scanner(System.in);//-----changed
movieCost = keyboard4.nextDouble();

System.out.println("Indicate your state of residency. Enter 1 for Mississippi or 2 for any other state.");
Scanner keyboard5 = new Scanner(System.in);//-----changed
stateResidency = keyboard5.nextInt();`
于 2015-08-04T20:05:26.213 に答える
0

使用するたびにキーボードを初期化する必要はありません。プログラムの先頭で一度宣言すれば、そこから何かを取得したいたびに、keyboard.next() を呼び出すだけです。

于 2013-02-04T10:02:58.990 に答える