-2

プロンプトが表示されたときに整数値が入力されていない場合にプログラムを保護するIfまたはIf-Elseステートメントを作成しようとしています。「.class」というエラーメッセージが表示され続けます。

  System.out.println("Type the name of your destination: ");
      destination = keyboard.nextLine();

      System.out.print(destination + " is how many miles away?");

      miles = keyboard.nextInt();

      if (miles != int);
      {
         System.out.println(miles + " is not valid. I will use 100 for the number of miles.");
      }  
4

6 に答える 6

2

intはキーワードであり、条件式には参加できません。

ステートメントの後に偽のセミコロンもありif、これは制御ステートメントとして機能するため、次のブロックは無条件です。

于 2013-03-05T03:26:48.213 に答える
2

これはコンパイルできません:

if (miles != int);

型である と変数を比較していますint。コンパイラは、クラス オブジェクトを取得できるように .class を追加することを提案しますが、これも正しくありません。

整数値が入力されていないかどうかを知りたいのですが、その場合、nexInt() がInputMismatchException. ユーザーが整数を入力しているかどうかを hasNextInt() で確認する必要があります。

于 2013-03-05T03:28:59.033 に答える
1

発生している構文エラーintは、キーワードであるためです。識別子として使用することはできません。

Scanneraが読み取りのint準備ができているかどうかを確認したい場合はkeyboard.hasNextInt()、条件で次を使用します。

int miles;
while (!keyboard.hasNextInt()) {    
    System.out.println(keyboard.nextLine() + " is not valid. Please enter a different number.");
}
int miles = keyboard.nextInt();
于 2013-03-05T03:27:36.217 に答える
0
if (miles != int);

数値がそのような int であるかどうかをテストすることはできません。また、この行の最後にセミコロンがあります (削除する必要があります)。ただし、実際には、その行を使用する理由はまったくありません。あなたが書いたので:

miles = keyboard.nextInt();

マイルは整数でなければなりません。そうしないと、スキャナーによって例外がスローされます。

于 2013-03-05T03:31:24.597 に答える
0

あなたが持っている ; if 文の後。

また、ユーザーが数値ではない int に入力した内容をチェックすることもできます。数字でそれを修正したいかもしれませんが、うまくいくはずです...クラスで覚えていることから。

于 2013-03-05T03:29:05.147 に答える
0

Javaチュートリアルを行う必要があると言って、これを開始します。あなたのコードは基本的な間違いでいっぱいです。


keyboard(それが...のインスタンスであると仮定しScannerます)

間違い 1 - 型名またはキーワード ( などint) を値として使用できません。

==間違い 2 -整数値 ( の値などmiles) を他の数値と比較するためにのみ使用できます。

間違い 3 - の後にセミコロンを付けるべきではありませんif (condition)。あなたが書いたものはコンパイルされますが、実際には「条件が真の場合、空のステートメントを実行する」ことを意味します。次に、無条件に実行されるブロック ... を続けました。

間違い 4 - 実際、keyboard.nextInt()有効な整数ではないものに遭遇すると、例外がスローされます。例えばInputMismatchException。エラー メッセージを出力する場合は、その例外をキャッチする必要があります。

間違い 5 - メソッドのjavadocを確認していないことは明らかですnextInt()...


要約すると...チュートリアルを完了していないか、講義などをスキップしているため、非常に多くの間違いを犯しています。

于 2013-03-05T03:44:52.173 に答える