知らなくても困らないから この項は省略してよい.
サブルーチンというのは,プログラムの中の一連の手続きをひとまとめにした もののことだ.関数と似ているが,値を返さない所が違う.サブルーチンは, プログラムの他の場所から必要に応じて呼び出して利用できる.
例を挙げる.
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 変数を宣言し使用す ることができる.