在循环体中,可以继续使用循环语句,这就是嵌套循环,也叫多重循环。如:
|
A |
B |
C |
D |
1 |
[] |
|
|
|
2 |
for 2,1000 |
for A1 |
if A2%B2==0 |
next A2 |
3 |
|
>A1=A1|A2 |
|
|
在例子中,A1中存储找到的质数序列;A2循环从2到1000的整数;在B2中循环质数列表,一旦发现当前A2中的数会被某个质数整除,就用next A2命令获取A2中的下个数;如果当前质数列表中所有数都不能整除A2中的数,说明找到了新的质数,将其添加到A1的序列中。其中,D2中的next C命令指定跳过以为主格的循环体剩下的代码,直接进入下轮循环。执行后,A1中,1000以内的质数序列如下:
使用next命令时,也可以不指定主格C,跳过next命令格所在的最内层次的循环。
如下面的百鸡问题:公鸡每只值5钱,母鸡每只值3 钱,而3 只小鸡值1 钱。用100钱买100 只鸡,问:这100 只鸡中,公鸡、母鸡和小鸡各有多少只?解答如下:
|
A |
B |
C |
D |
1 |
[] |
|
|
|
2 |
for 100 |
if 5*A2>100 |
break |
|
3 |
|
for 100-A2 |
=100-A2-B3 |
=5*A2+3*B3+C3/3 |
4 |
|
|
if D3>100 |
next A2 |
5 |
|
|
else if D3<100 |
next |
6 |
|
|
>A1=A1|[[A2,B3,C3]] |
|
在代码中,A2循环公鸡的总数;在B2中判断,如果公鸡的总价已经超过100,说明公鸡的总数已经太多了,此时在C2中用break命令终止循环。B3中继续循环母鸡可能的总数。在D4中,如果发现当前鸡的总价已经超过了100,说明在当前母鸡总数已经太多了,可以用next A2,增加公鸡的总数,重新尝试。在D5中,当前鸡的总价还小于100,可以继续增加母鸡的总数来尝试,这里的next命令会跳过当前最内层的循环代码,即以B3为主格的循环。A1中得到的结果如下: