-2

プロンプトに入力された値が 100,000 から 900,000 の間であることを確認する必要がありますが、うまくいきません。(ちなみに初心者ですw)

    double advertCost;
    do {
    System.out.println("Please enter the advertising cost: ");
    advertCost = input.nextDouble();

    } while (advertCost =< 100000 || advertCost => 900000);

エラー: トークン "<" の構文エラーです。このトークンを削除してください。演算子 || 引数の型 int、boolean に対して定義されていません トークン "=" の構文エラーです。このトークンを削除してください

4

3 に答える 3

5

あなたの問題はあなたの構文にあります:

while (advertCost =< 100000 || advertCost => 900000);

Javaでは、「以下」演算子はあなたが言うとおりです。LESS THAN または EQUAL に。あなたは EQUAL TO または LESS THAN を持っています。同じことがあなたのより大きなものにも当てはまります。次のようになります。

while (advertCost >= 100000 || advertCost <= 900000);

また、オペレーターの使い方が間違っていました。advertCost100000 より大きく 900000 より小さくしたいのですが、演算子は 100,000 より小さく 900,0000 より大きいことを暗示しています。

あなたのエラーについてはさておき

多くの場合、この種の問題はエラー メッセージで理解できます。それらが不可解に見えることはわかっていますが、それらを解読することを学べば、構文エラーに関して私たちの必要性はほとんどなくなります.

Syntax error on token "<", delete this token The operator || is undefined for the argument type(s) int, boolean Syntax error on token "=", delete this token

それをいくつかの部分に分けてみましょう:

最初の部分

メッセージ:Syntax error on token "<", delete this token

さて、JRE はコードを解析したばかりで、各tokenを処理しています。これは、到達した最初の無効なトークンであるため、このメッセージが生成されます。ただし、これを削除すると、無効な if 文が残るので、読み進めましょう。

第二部。

メッセージ:The operator || is undefined for the argument type(s) int, boolean

検出可能なオペレーターが見つからないため、JRE はそこにオペレーターが存在しないと想定する必要があります。IF ステートメントの一部を解析すると、次のことがわかります。

if(a number || something else).

この時点で、||オペレーターは 2 つのブール値でのみ機能することがわかっているため、別のエラーがスローされます。これは、コードが失敗することを既に知っているためです。反対側をチェックする必要はありません。

最後の部分

メッセージ:Syntax error on token "=", delete this token

したがって、JRE は解析を続け、「=>」も検出しました。以前と同様に、無効な文字が記載されており、削除することをお勧めします。「=」を削除すると、If ステートメントのこの部分の構文が実際に有効になります。

概要

次にこの種のエラーに直面したときは、単純にメッセージを分析してみてください。どの文字が間違っているかがわかり<ます=。何を試してみるべきかさえ教えてくれます。明らかに、それは推測することしかできないので、あなたが望むものとそれをランタイム環境に理解させる方法を理解するのはあなた次第です!

于 2013-04-06T10:36:51.387 に答える
1

比較演算子は<=andであり、 and ではあり>=ません。=<=>

于 2013-04-06T10:36:15.133 に答える
0
(advertCost <= 100000 || advertCost >= 900000)
于 2013-04-06T10:36:54.217 に答える