2011-01-25 7 views
1

私はMac Mini G4でJavaを学ぼうとしています。ターミナルで "javac DooBee.java"と入力して "DooBee.java"をコンパイルしようとすると、2つのエラーが発生します。これは私の端末は次のようになります。javacはint(x = 1)と言っています。声明ではなく、 ';'期待される。私のコードに何が問題なのですか?

> 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"); 
     } 
    } 
} 

私がミスをしたことがありますか?または、私のコンピュータに何か問題がありますか?申し訳ありませんが、この質問(または同様のもの)が既に質問されている場合。私は正直に答えを見つけようとしました(Google検索、Stack Overflowの検索、コードの再書き込み、数々のコードの再読み込み、正しい方法の入力を確実にするためにHead First Javaをチェックしました)。

+1

変数を宣言したとき(例えば:integer型の 'x'を宣言しているとき)、'(..) 'に入れないで '単に型の可変名=値を書きます。だから' int x = 1; 'IfとWhilesのような条件文でその変数を使いたいときは角括弧が必要です... – VoodooChild

答えて

5

(x = 1)は式であり、宣言ではないため、変数xを宣言するために使用することはできません。カッコを削除すると、イニシャライザで正しい宣言が得られます。

1
int (x = 1); 

int x = 1; 
2

で正しい宣言があることを置き換える:

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

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

一般的には、キャスト、括弧はif、while、else if、elseおよびfor文の後に、またはブール論理をきれいにする状況でのみ囲みます。

+0

実際には受け入れられる文法であり、評価の順番とは関係ありませんが、受け入れられるものです答えなし。 –

関連する問題