GOTOの議題は必要以上にややっこしくなると思うのでやらない方が良いような気も…(^^; GOTOは使わなくてもプログラムは組めますし、実際にGOTOはない言語もあります。 ただ実際GOTOのような動作がないというわけではなくて、それはより明確な定義のあるFOR, WHILE, REPEATなどのループ命令に置き換わっていたり、DEFの関数化などの手法によって必要がなくなったという感じなので、もしこの手のループ命令やDEF関数などがなかったらGOTOは必須です。(なのでアセンブラにはGOTOというかジャンプ名の命令がたくさんあります) ちなみにサブルーチンは、ルーチンという言葉が、処理の固まりのようなものを表すので、その頭にサブがついてるだけなのでメインではないサブなルーチン、つまり色んな処理をしてくれる便利なルーチンみたいな感じですね。