
常用软件类: |
|杀毒安全 | |联络聊天 | |网络软件 | |多媒体类 | |系统工具 | |图形图像 | |系统工具 | |应用软件 | |行业软件 |
开发设计类: |
|动画制作 | |图像处理 | |3D设计 | |操作系统 | |站长学院 | |网络相关 | |WEB设计 | |数据库类 | |程序开发 |
第四章 常见错误和难点分析
1. 不循环或死循环的问题主要是循环条件、循环初值、循环终值、循环步长的设置有问题。
例如,以下循环语句不执行循环体:
For i=10 To 20 Step-1 ' 步长为负,初值必须大于等于终值,才能循环
For i=20 To10 ' 步长为正,初值必须小于等于终值,才能循环
Do While False ' 循环条件永远不满足,不循环
例如,以下循环语句死循环:
For i=10 To 20 Step 0 ' 步长为零,死循环
Do While 1 ' 循环条件永远满足,死循环
2.循环结构中缺少配对的结束语句
For…Next语句没有配对的Next语句;Do语句没有一个终结的Loop语句等。
3.循环嵌套时,内外循环交叉
For I=1 to 4
For j=1 to 5
…
Next i
Next j
上述循环的交叉运行时显示"无效的Next控制变量引用"。
4.累加、连乘时,存放累加、连乘结果的变量赋初值问题
(1) 一重循环
在一重循环中,存放累加、连乘结果的变量初值设置应在循环语句前。
例如,求1~100的3的倍数和,结果放入Sum变量中,如下程序段,输出结果如何?应作如何改进?
Private SubForm_Click()
For i=3 To 100 Step 3
Sum=0
Sum=Sum+i
Next i
Print Sum
End Sub
(2) 多重循环
在多重循环中,存放累加、连乘结果的变量初值设置放在外循环语句前,还是内循环语句前,这要视具体问题分别对待。
例如,期末30位学生参加三门课程的考试,求每个学生的三门课程的平均成绩如下程序能否实现?
aver=0
For i=1 To 30
For j=1 To 3
m=InputBox("输入第"&j&"门课的成绩")
aver=aver+m
Next j
aver=aver/3
Print aver
Next I