2

重複の可能性: Java で初期化されて
いない変数とメンバー Java
でローカル変数が初期化されないのはなぜですか?

Java変数にはデフォルト値がありますよね?配列もコンパイラによって初期化されます。
したがって、次のことが理解できません。

int c;  
for(int i = 0; i < 10; i++){  
   c = i + 5;  
}  
System.out.println("Result = "+c);  

コンパイラ エラーが発生する理由:

ローカル変数 c が初期化されていない可能性があります

コンパイラによってデフォルトでc初期化されていませんか? では、なぜこのエラーが発生するのですか?また、明示的に行うとエラーが消えるのはなぜですか? 0
int c = 0

4

2 に答える 2

6

ローカル変数を初期化する必要はありません。クラス フィールド変数にはデフォルト値があります。

ローカル変数は少し異なります。コンパイラは、初期化されていないローカル変数にデフォルト値を割り当てません。宣言されているローカル変数を初期化できない場合は、使用する前に必ず値を割り当ててください。初期化されていないローカル変数にアクセスすると、コンパイル エラーが発生します[...]

于 2012-07-19T06:15:48.357 に答える
1

Beucaseforloopは条件付きループです。そして、c その条件付きループに入っていない場合、コンパイラは初期化されていない可能性があります

于 2012-07-19T06:17:20.873 に答える