変数は基本的に実行時にはその中身になると考えればいいんじゃないかと思います。なので上記の場合、KCNT=18となっていてDIMの時はその時点での値なのでN$[18]、FORが実行される時も値は変更されてなくてKCNT=18のままなので、FOR I=0 TO 18-1です。 (実は厳密にはループ時に判定されるので違うのですが) 都度頭の中で変数を展開してやれば変数が減って(?)わかりやすくなるかもです。