1

私はJavaを学ぼうとしているMacMiniG4を使用しています。ターミナルで「javacDooBee.java」と入力して「DooBee.java」をコンパイルしようとすると、2つのエラーが発生します。これは私の端末がどのように見えるかです:

> nephi-shields-mac-mini:/developer/MyProjects
> nephishields$ javac DooBee.java
> DooBee.java:5: not a statement
>                 int (x = 1);
>                 ^ DooBee.java:5: ';' expected
>                 int (x = 1);
>                     ^ 2 errors nephi-shields-mac-mini:/developer/MyProjects
> nephishields$

これは、「DooBee.java」ファイルに入力したものです。

public class DooBee {
    public static void main (String[] args) {
        int (x = 1);

        while (x < 3) {
            System.out.print ("Doo");
            System.out.print ("Bee");
            x = x + 1;
        }

        if (x == 3) {
           System.out.print ("Do");
        }
    }
}

間違えましたか?または、私のコンピューターに何か問題がありますか?この質問(または同様の質問)がすでに行われている場合は申し訳ありません。私は正直に自分で答えを見つけようとしましたが(グーグル検索、Stack Overflowの検索、コードの書き直し、私の本「Head First Java」をチェックして、正しい方法で入力していることを確認しました)、空になりました。

4

4 に答える 4

5

問題は、(x = 1)それが宣言ではなく式であるため、変数を宣言するために使用できないことですx。括弧を削除すると、初期化子を使用した正しい宣言が得られます。

于 2011-01-25T02:01:03.470 に答える
2

正しい宣言は次のとおりです。

public class DooBee {
    public static void main (String[] args) {
        int x = 1;
        ...
    }
}
于 2011-01-25T02:05:46.310 に答える
2

Javaでの操作の順序を覚えておいてください。括弧内の項目が最初に評価されるため、(x = 1)が評価されますが、これはJavaでは実際には意味がないため、エラーになります。

通常、括弧、if、while、else if、else、forステートメントの後の句、またはブール論理を非常に明確にしたい状況でのみ括弧をラップします。

于 2011-01-25T02:15:17.810 に答える
1
int (x = 1);

それをに置き換えます

int x = 1;
于 2011-01-25T02:02:46.750 に答える