3号プログラミング覚え書き(1) 変数編
久しぶりにプチコン3号でプログラミングする時に、結構忘れている細かいことがあるので、それらをまとめておく。
◆変数関係
・変数名の長さに制限はない
プチコン3号においては変数名の長さに制限はない。
・大文字・小文字は区別されない
つまり、ABCとabcは同じ変数名となる。
・$や%や#をつけると違う変数となる
例えば、AとA%とA#とA$は別ものとなる。
ただし、Aと配列Aは同じ。
VAR A, A%, A#, A$ '<-問題なし
VAR B, B[9] '<-エラーになる
すなわち、$や%や#は名前の一部だと思えばよい。
・変数にはグローバルスコープとローカルスコープがある
スコープ(変数の有効範囲)にはグローバルとローカルの2つがある。
グローバルはDEFで囲まれていない一番外側のコードを表す。
ローカルはDEFで囲まれているコードを表す。
DEF内においてVAR/DIMで宣言された変数は、グローバルにある変数とは別ものになる。
・DEF内でローカルスコープで宣言されていない変数を参照するとグローバルスコープを参照する
DEF内で宣言されていない変数名を参照すると、自動的にグローバルスコープにある変数を参照する。
すなわち、グローバル側からはローカルにある変数を参照できないのに対し、
ローカル側からはグローバルにある変数を参照することができる。
・ローカルスコープは一つのDEF内でのみ通用する
関数Aから関数Bが呼び出されているような状況でも、関数Bが参照できるローカルスコープは関数Bの中だけ。
呼び出し元の関数Aの変数を
次のサンプルコードで示す。
VAR A$="ZZZ" SUB1 PRINT A$ '<- "SUB2"と表示される END DEF SUB1 VAR A$="SUB1" SUB2 PRINT A$ '<- "SUB1"と表示される END DEF SUB2 A$="SUB2" END
実行結果は次のようになる。
SUB1 SUB2