ローカル変数 ローカル変数とは、ある一部の領域でのみ定義され、その領域内でのみ有効な変数です。 なんでそんなことをする必要があるのか、と思うかもしれませんが、ローカル変数がないと結構不便なんです。 むしろ、ローカル変数として宣言できるものは極力そうしなければなりません。 ローカル変数の宣言の仕方 ローカル変数の宣言は、変数の前に「var」をつけるだけです。
ローカル変数
    1
    2
    3
    function Func(){
      var a = 100;
    }
これだけです。 では、実際にどのへんが違うのかを見ていきましょう。 まず最初に、ローカル変数宣言をしない場合を見てみましょう。
ローカル変数でない
    1
    2
    3
    4
    5
    6
    7
    function Func(){
      a = 100;
    }

    a = 0;
    Func;
    Mes(a);
実行すると、「100」とダイアログが出るはずです。 つまり、Funcという関数の中で、aという値が書き換えられたのです。 次に、ローカル変数宣言した場合を見てみましょう。
ローカル変数
    1
    2
    3
    4
    5
    6
    7
    function Func(){
      var a = 100;
    }

    a = 0;
    Func;
    Mes(a);
で、実行すると、「0」とダイアログが出るはずです。 aはローカル変数で、要するにFunc内のaとそうでないaはまったく別の変数ということです。 別の変数なんですから、違う値になって当たり前ですよね？ このように、ローカル変数は、一部だけで有効な変数となります。 上の例では、Funcという関数を抜けたらaは無効になります。 基本的に、{}で囲まれた部分の中でローカル変数を定義します。 ifやforの実行する領域内でももちろんローカル変数を宣言することは可能です。 むしろ、forなどのループ命令では、ローカル変数を使うべきです。 例えば、以下のような文があったとします。
ローカル変数でない
    1
    2
    3
    4
    5
    for(i = 0;i < 5;i = i + 1){
      for(i = 0;i < 3;i = i + 1){
        Mes(i);
      }
    }
あ、最初に言っておきますが、この例を実行しないでください。 この文は、何処もおかしくないように見えます。 5 × 3回ダイアログを表示するプログラムです。 ですが、for内のfor(2行目のfor)でiは3より大きくならないようになっているため、 条件i < 5が満たされることはありません。 このようなバグを起こさないためにも、ローカル変数を使うべきです。
ローカル変数を使う
    1
    2
    3
    4
    5
    for(i = 0;i < 5;i = i + 1){
      for(var i = 0;i < 3;i = i + 1){
        Mes(i);
      }
    }
これなら2行目のforを抜けた時点でvar宣言されたiがなくなるため、i < 5の条件は満たされます。 ローカル変数を使いましょう。

前へ / index / 次へ
プログラム言語「Spinel」
Copyright © 2005 - gabyou All Rights Reserved.
NOTES Software.