for i=1 to 100 print \ next i for i=1 to 100 print i, next i
注意:在循环体内可对循环变量赋值,但这将改变循环次数。 for i=1 to 100 print i, i=i+1 next i 3、exit for 语句
提前终止循环 for i=1 to 100 s = s + i * i
if s > = 100 then exit for
next i print s end 4、应用举例 判别n是否素数。 input \ k = int(SQR(n))
f = 0 for i% = 2 to k if n mod i% = 0 then f = 1 exit for endif next i% if f = 0 then print n ; \是素数\
else print n ; \不是素数\
endif end 斐波那契数列
f(n)=1 (n<=2) f(n)=f(n-1)+f(n-2) (n>2)
f1=1 f2=1 f3=f2+f1=2 f4=f3+f2=3
f5=f4+f3=5 ...... 程序如下: f1=1 f2=1 print f1,f2, for i% = 3 to 20 f3 = f1+f2 print f3,
f1=f2 f2=f3 next i% print end
猴子吃桃:每次吃掉一半多一个,直到第10天只剩一个,第一天共摘了多少个桃子?
x10 =1 程序如下:
x =1 for n%=10 to 2 step -1 x=(x+1)*2 next n% print \桃子的数量为:\ end 思
考
:
for
n%=10
to
1
step
-1
或
for
n%=1
to
9
三、DO 循环语句 1、简单DO循环 DO <循环体>
loop
终止循环可用: exit do 计算三门课程的平均成绩 do input\ if a=0 and b=0 and c=o then exit do s=(a+b+c)/3 print \平均成绩:';s
loop
end
2、带while子句的DO循环语句
格式一:do while <条件>
<循环体> loop
格式二:do
<循环体>
loop while <条件> 作
用
:
当
指
定
条
件
为
真
是
继
续
循
环
,否
则
结
束
循
环
。
`
格式一为前测试与while...wend相同。格式二为后测试,至少应执行循环体一次。
例:求1+1/2+1/3+.......1/n 直到前后两项之差小于是1e-3为止。s=0 n=1 t=1/n
do t1=t s=s+t1 n=n+1 t=1/n
loop while t1-t>=1e(-3) print s end
思考:(1)用do while...loop 改写程序; (2)两种格式do 循环的区别? 3、带until子句的do循环语句
格式一:do until <条件> <循环体>
loop
格式二:do
<循环体>.
loop until <条件> 作用:当条件为真时终止循环 求2000~2050年之间的所有闰年。 闰年的条件是:
(1)能被4整除,但不能被100整除的年份都是闰年; (2)能被100整除,又能被400整除的年份是闰年; 程序如下: y=2000 do while y>2050 if y mod 4=0 and y mod 100<>0 then l=1
elseif y mod 100=0 and y mod 400=0 then l=1 else l=0
endif
if l=1 then print y, y=y+1 loop
end
思考: 条件可写成: (1)if (y mod 4=0 and y mod 100<>0) or (y mod 100=0 and y mod 400=0) then l=1 else l=0 (2) if y mod 4=0 then if (y mod 100)<>0 then l=1 elseif (y mod 400)=0 then l=1 else l=0
endif
人口增长平均1.5%,设现人口12.3 亿,问多少年后人口达到或超过15亿。 p=1.23e+0.9 r=0.015 n=0 do until p>=1.5e+0.9 p=p*(1+r) n=n+1 loop print n;\年\人口\ end 问题(1)比较下面两例: f=1 f=1 n=6 n=6 do until n>5 do f=f*n f=f*n n=n+1 n=n+1 loop loop until n>5 print f print f end end
(2)凡是用do until循环可以解决的问题,全部可用do while解决,只需把“<条件>”取成“<反条件>” p=1.23e+0.9 r=0.015 n=0 do while p<1.5e+0.9 loop
p=p*(1+r)
n=n+1 口
\
n;\年
\人
end 四、循环的嵌套
一个循环体内包含另一个循环
找出100-200间的全部素数。 for n=101 to 200 step 2 k=int(SQR(n)) i=2 f=0 while i<=k and f = 0 if n mod i=0 then f=1 else i=i+1 wend 例打印乘法九九表
for i=1 to 9 for j=1 to 9 p = i*j print p, next j
print next i
if f=0 then print n, next n
end
相关推荐: