在程序设计中,循环结构是一种基础且至关重要的概念,它允许程序员重复执行一段代码块,直到满足特定条件为止。本章主要围绕两种常见的循环结构展开:For循环和Do循环。
**6.1 For循环**
For循环是预先设定好循环次数的循环结构。它通常包括三个部分:初始值、终值和步长。例如,以下代码用于求1到99之间所有奇数之和:
```vb
Private Sub Command1_Click()
Dim s As Integer, n As Integer
s = 0
For n = 1 To 100 Step 2
s = s + n
Next n
Label2.Caption = s
End Sub
```
For循环的工作原理是:首先检查循环变量`n`是否超过了终值100,如果没有,就执行循环体,将`n`加2(步长),然后再次检查,直至`n`超过100为止。循环体执行的次数可以通过公式`INT((终值-初值)/步长+1)`计算得出,对于上述例子,执行次数为50次。
For循环还可以进行嵌套,以实现更复杂的逻辑。例如,下面的代码展示了For循环用于输出九九乘法表:
```vb
Private Sub Form_Load()
FontSize = 12
Print Tab(25); " 九九表 "
Print
For j = 1 To 9
Print j; " ";
For k = 1 To 9
m = j * k
Print Tab(k * 6); m; " ";
Next k
Print
Next j
End Sub
```
**6.2 Do循环**
Do循环提供了一种更为灵活的循环方式,它分为前测型(测试循环条件在循环体之前)和后测型(测试循环条件在循环体之后)。前测型Do循环在每次执行循环体之前检查条件,如计算对折纸张达到珠穆朗玛峰高度所需的次数:
```vb
Private Sub Command1_Click()
n = 0
h = Text1.Text
Do While h < 8848000
n = n + 1
h = 2 * h
Loop
Text2.Text = n
Text2.Locked = True
End Sub
```
后测型Do循环常用于需要在循环体执行至少一次的情况。例如,计算不超过5000的最大阶乘值:
```vb
Private Sub Command1_Click()
Dim n As Integer, s As Long
CurrentY = Label2.Height + 200
n = 1
s = 1
Do Until s > 5000
n = n + 1
s = s * n
Print n, s
Loop
Label1.Caption = "n = " & n
End Sub
```
无论是For循环还是Do循环,循环结构都是程序设计中不可或缺的部分,它们能够有效地处理重复性任务,简化编程工作,提高代码效率。理解并熟练掌握这些循环结构,对于编写任何编程语言的程序都至关重要。