4
for(int i=0; i<10;i++){
 int j=0;
}

ja ブロック変数ですか、それともローカル変数ですか? j のスコープは for ループが終了するまでしかないことがわかります

4

5 に答える 5

9

ローカル変数は、メソッド、コンストラクター、またはブロックで宣言されます。

そのことから、 すべてのブロック変数はローカル変数のものであることは明らかです。

ブロックの定義による

ブロックは、釣り合った中かっこの間の 0 個以上のステートメントのグループであり、単一のステートメントが許可されている場所であればどこでも使用できます。

そう

{   //block started

}    //block ended

ブロック内で宣言された変数が何であれ、スコープはそのブロックに制限されます。

for(int i=0; i<10;i++){
 int j=0;
}

したがって、Jスコープはそのブロック内に制限されます。それは for ループです。

for(int i=0; i<10;i++){
 int j=0;
 //do some thing with j ---> compiler says "yes boss"
}
//do some thing with j ---> compiler says "Sorry boss, what is j ??"
于 2013-10-19T06:53:44.107 に答える
2

ブロック用のローカル変数です。その for ループの外では、j は存在しなくなります。

于 2013-10-19T06:32:05.897 に答える
1

j 変数は {this block} 内でのみアクセス可能です。これは、他の場所で変更できないことを意味するだけでなく、ループがループするたびに再作成されることを意味します。

于 2013-10-19T06:45:32.157 に答える
0

j はループ内でのみスコープを持ち、ループ外では j にアクセスできません。スコープの詳細については、リンクを参照してください。役に立ちます。

于 2013-10-19T06:38:54.050 に答える