3.2 変数の種類

次は変数の種類を覚えておきましょう。
代表的な変数は、グローバル変数ローカル変数です。
このProcessingはJavaをベースにして作られているので、実際にはメンバ変数というのもありますが、これについては「5.3 オブジェクト指向プログラミング」の節で説明します。ここでは、グローバル変数とローカル変数だけを理解しておきましょう。
まずは、次のふたつのサンプルをProcessing上で再生してみてください。
その際、変数 i の値がコンソールに表示されますが、その値がどのように違うかを調べてください。

ローカル変数

int counter;

void setup() {
  counter = 0;
}

void draw() {
  int i = 0;
  
  if ( counter < 5) {
    println(i);
    i ++;
    counter ++;
  }
}

グローバル変数

int i;
int counter;

void setup() {
  i = 0;
  counter = 0;
}

void draw() {
  
  if ( counter < 5) {
    println(i);
    i ++;
    counter ++;
  }
}

再生してみれば分かると思いますが、上のローカル変数iは、値が常に0で変化しません。逆に、グローバル変数iは、draw( ) が実行されるたびに値が1ずつ増えているのが分かると思います。

まずここで覚えておいて欲しいことは、描画機能を実行するdraw( ) のように、あるまとまった機能をパッケージ化したものを「関数」(function)と呼ぶということです。ちなみに、ellipse()やfill()などもすべて関数です。

さらに、ローカル変数はひとつの関数の中のみで有効ですが、グローバル変数は関数の外に書かれているので、どの関数からでも共有できるのです。
色々変数を宣言する場所を変えて色々試してみましょう。