二重ループ

2重ループとは

FOR 〜 NEXT などの繰り返しをする部分を「ループ」などとよびます。2重ループは繰り返しが2重になっているものをいいます。

FOR i=1 TO 10
   FOR j=1 TO 10
      PRINT i * 10 + j ;
   NEXT j
   PRINT 
NEXT i
END
 11  12  13  14  15  16  17  18  19  20  ← i が1の行
 21  22  23  24  25  26  27  28  29  30  ← i が2の行
 31  32  33  34  35  36  37  38  39  40 
 41  42  43  44  45  46  47  48  49  50 
 51  52  53  54  55  56  57  58  59  60 
 61  62  63  64  65  66  67  68  69  70 
 71  72  73  74  75  76  77  78  79  80 
 81  82  83  84  85  86  87  88  89  90 
 91  92  93  94  95  96  97  98  99  100 
 101  102  103  104  105  106  107  108  109  110 
 ↑  ↑
 j=1 j=2

NEXT j と NEXT i の間の PRINT は改行のために入れてあります。100以上は3桁になるため表示がみだれています。

PRINT i * 10 + j ; を PRINT i + j * 10 ; とすればどのような表ができますか。

例21

次のような数字の表を表示するプログラムを作れ。

11  12  13  14 
21  22  23  24 
31  32  33  34 

例22 九九の表

九九の表を作るプログラムを作りりなさい。掛け合わせる二つの数字を i, j として、それぞれ1〜9まで変化させます。できあがりはこのようになります。

 1  2  3  4  5  6  7  8  9 
 2  4  6  8  10  12  14  16  18 
 3  6  9  12  15  18  21  24  27 
 4  8  12  16  20  24  28  32  36 
 5  10  15  20  25  30  35  40  45 
 6  12  18  24  30  36  42  48  54 
 7  14  21  28  35  42  49  56  63 
 8  16  24  32  40  48  56  64  72 
 9  18  27  36  45  54  63  72  81 

一桁と二桁が混ざっているので普通の PRINT 文では縦の線がそろいません。もしも、気になるようでしたら、PRINT i * j ; の代わりに次のようにすればそろいます。

PRINT USING "####": i * j ;

例23

次のような数字の表を表示するプログラムを作れ。

 1  
 2  4  
 3  6  9  
 4  8  12  16   
 5  10  15  20  25  
 6  12  18  24  30  36  
 7  14  21  28  35  42  49  
 8  16  24  32  40  48  56  64  
 9  18  27  36  45  54  63  72  81 

聖愛高等学校
http://www.seiai.ed.jp/