for(int i=0; i<10;i++){
int j=0;
}
ja ブロック変数ですか、それともローカル変数ですか? j のスコープは for ループが終了するまでしかないことがわかります
for(int i=0; i<10;i++){
int j=0;
}
ja ブロック変数ですか、それともローカル変数ですか? j のスコープは for ループが終了するまでしかないことがわかります
ローカル変数は、メソッド、コンストラクター、またはブロックで宣言されます。
そのことから、 すべてのブロック変数はローカル変数のものであることは明らかです。
ブロックの定義による
ブロックは、釣り合った中かっこの間の 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 ??"
ブロック用のローカル変数です。その for ループの外では、j は存在しなくなります。
j 変数は {this block} 内でのみアクセス可能です。これは、他の場所で変更できないことを意味するだけでなく、ループがループするたびに再作成されることを意味します。
j はループ内でのみスコープを持ち、ループ外では j にアクセスできません。スコープの詳細については、リンクを参照してください。役に立ちます。