変数のスコープ

変数を宣言すると、その変数が使える範囲は決まっています(スコープ)。変数はその変数のスコープの外からは参照できません。メソッドでは、メソッド内で宣言された変数は、他のメソッドから参照することはできません。

if, whileなどの制御構造でもブロックのカッコ内がスコープとなっています。ブロックのなかで宣言された変数はブロックの外からは参照できません。

while(true) {
   int t; // tのスコープがここからはじまる
   ...
   //tが使えるのはここまで
}
ここではtは使えない.(もう存在しない.)

変数のスコープはできる限り小さな範囲に収めること。たとえば、変数は使う直前に宣言する、ブロックの中でしか使わない変数はブロックの中で宣言する、など。こうやって、変数の影響範囲を小さく抑えることができ、見通しのよいプログラムとなる。

for文の初期化部分で宣言した変数は.forの;で区切られた部分と繰り返しの文中がスコープとなる。

for(int i = 0; i < n; i++) { 
   // iが使える
}
// ここではiは使えない