有图小站

关注电脑网络,记录健康生活。有图小站,价值分享。

当前位置: 首页 > 程序设计 > for next循环语句的使用方法

for next循环语句的使用方法

上一节我们介绍的是 while循环语句的使用方法,今天我们看另外一个很有代表性的循环 for next 循环结构。

还举上一节的例子:

s=0
for i=1 to 10
s=s+i
next
print s

就初学者而言,for next结构没有while wend结构好理解。因为for next包含了以下信息:

1、for 语句包含了循环变量的开始值和结束值;
2、next相当于循环变量的变化;

所以看似比while循环的语句少,但对初学者而言并不好理解。

就此程序而言,最大的难点就在于for语句和next语句,因为他们是较之前所学是新的内容。本条for语句包含了以下信息:

a、i 的初始值是 1 最大边界是10,包含10(相当于<=10);b、next 也可写作 next i ,相当与增加1;

所以和上一节的第一个例子的计算结果是等同的。

可能就有朋友问了,next i 为何就是i=i+1呢?这得从 for next 的完整句式说起。

for 变量起始值 to 变量结束值 step 步长

如:

for i=1 to 10 step 1
意思就是从1到10,每次增1,而

for i=10 to 1 step -0.1
意思就是从10到1每次减少0.1。

相信大家已经看明白了step和next是向关联的,但是为何我们的例子中没有step值,为何要加1呢,这是一个惯例:如果没有生命step的值,那么next就等同于变量加1的效果。

好了,讨论了这么多,不知道大家对 for next语句是否还有疑问呢?看个例子吧。

例1、求1到100内的偶数之和。

首先我们知道偶数是2、4、6、8……98、100

所以第一个数字是2,但是每次要增加2怎么办,可以用我们的步长step来控制,可以将变量的增加来控制,所以这道题有两种解法:

cls
s=0
for i=2 to 100 step 2
s=s+i
next i
print s
end

这个例子中由于每次 i 增加2,所以被累加到 s 上的结果一定是 2、4、6、8

第二种解法:

cls
s=0
for i=2 to 100
s=s+i
i=i+1
next i
print s
end

在此例中,我们没有使用step,所以next的效果是加1,那么我们只需在循环体内将控制变量再加1,实质上就变成了每次循环 i 增加2

是否想使用我们早期使用过的while语句来试试?

cls
s=0:i=2
while i<=100
s=s+i
i=i+2
wend
print s
end

通过这个例子我们再次可以看到while语句较 for next好理解,这里看的很清楚,i 每次就是加2 ,不像for语句中使用step来增加。

例2、计算任意数M到N,每次级差为P的数列之和。

由于我们不知道m、n、p的值,那就用input 语句来输入吧。

cls
input "m,n,p";m,n,p
s=0
for i=m to n step p
s=s+i
next i
print s
end

也许你认为这样的程序就可以了,但是实际上存在 m>n 还存在 m<n 由于只说了级差为 p 并为说明p为正还是为负。所以我们按照输入的习惯需要做一个判断,就算是多此一举,你也可以通过这个程序看到更为完备的程序结构。

cls
input "m,n,p";m,n,p
s=0
if m<n and abs(p)<>0 then
for i=m to n step abs(p)
s=s+i
next
print s
elseif m>n and abs(p)<>0 then
for i=m to n step -abs(p)
s=s+i
next
print s
else
print "p=0,error"
end if
end

这个程序用到了循环、分支、和绝对值函数abs,所以,任凭你随便数p为正为负,程序将p的值根据m和n关系自动的取正数或者负数,同时不要小看了那个 and abs(p)<>0 这句话可以避免我们因为不小心输入了p为零而产生的死机。

通过这个例子希望大家了解程序的完备性,因为用户在输入数据的时候也许不会考虑那么周全,那就需要我们修改程序来完整任务了。

大家是否希望使用while语句来重写一下这个例子呢?算是留给大家的作业吧。今天我们就暂时讨论到这里,下一节我们使用循环和分支来解决一些有趣的问题,更多的内容参照qbasic教程的主页

本文是 有图小站 原创,原地址 http://www.utosee.com/post/for-next-qbasic.html 转载请保留。





上一篇:while循环的使用
下一篇:接近圆周率的除法




版权所有 有图小站 关注 电脑 网络 软件 健康 豫ICP备12023314号