知らなくても困らないから この項は省略してよい.
サブルーチンというのは,プログラムの中の一連の手続きをひとまとめにした もののことだ.関数と似ているが,値を返さない所が違う.サブルーチンは, プログラムの他の場所から必要に応じて呼び出して利用できる.
例を挙げる.
10 a=1:b=2:c=0 20 gosub *MAX(a,b,&c) :'サブルーチンを呼び出す 30 print c 40 end 100 *MAX(x,y,&z) :'サブルーチン 110 if x>=y then z=x else z=y 120 returnサブルーチン
MAX
に入るとき,変数名がそのまま書かれているa,bはその値がそのまま別の変数x,yに渡される.ところでx,yは
サブルーチンの中だけで有効な local 変数だから,その値を変えてもその外側に
は何の影響もあたえない(関数のときと同様だ).
一方,&を付けて引数に並べた変数cの方はサブルーチン
MAX
の中ではzと同一視される.従ってサブルーチンの中でzの値を変えるとcの値も変わる.&付きで渡された変数の,サブ
ルーチン内での値の変化は,サブルーチンの外側にまで影響を及ぼすのだ.
この例のプログラムでは,この性質をうまく利用している.
なおサブルーチンの中でも local によって local 変数を宣言し使用す ることができる.