「変数のスコープ」(2007/10/20 (土) 23:30:12) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
変数のスコープとは変数の有効な範囲(見える範囲)のことです
変数は宣言されたブロックの中でのみ有効です
>var i = 0;
>if(i == 0) {
> i = 5;
> var j = 10; // 変数jを宣言
>}
>System.inform(i);
>System.inform(j); // ここでエラーが出る
これを実行すると変数iの5は表示されますが、「メンバ "j" が見つかりません」というエラーが出たと思います
変数jはif文の後のブロックの中で宣言されています
よって変数jはそのブロックの中を抜けたら見えなくなってしまいます
ブロックの外で宣言された変数iはどこでも見える変数になります
その変数が見えない場所ではその変数を使う事は出来ません
>&italic()// for文のスコープのテスト
>for(var k = 0; k < 3; k = k + 1) {
> System.inform(k);
>}
>System.inform(k);//ここでは変数kは見えない
for文の第1節では変数を宣言する事が出来ます
第1節で宣言した変数が見える範囲はループしている間だけです
>var i = 0;
>while(i < 2) {
> var j = 10;
> if(i == 0) {
> System.inform(j); // ここでjは見える
> } else {
> System.inform(i); // グローバル変数iも見える
> }
> i = i + 1;
>}
ブロックの中のブロックの中では、それより外のブロックの変数も使う事ができます
また、ブロックの外で宣言された変数をグローバル変数、ブロックの中で宣言された変数をローカル変数といいます
グローバル変数の方が便利な気がするかも知れませんが、変数が多くなると管理が大変になってきます
そこでしか使わない変数はローカル変数にするべきです
表示オプション
横に並べて表示:
変化行の前後のみ表示: