for循环语句可以嵌套,输入并运行以下代码:
Sub 游戏执行过程(hWndForm As hWnd)
Dim As Long i, j
Dim 输出 As String
For i = 1 To 9
输出 = ""
For j = 1 To 9
输出 &= Right(" " & Str(i*j),3)
Next
Print 输出
Next
End Sub
在VFB上,点击工具栏最后一个,选择带控制台,这是为了更好的查看打印输出

程序运行后输出:(带控制台后,输出在控制台)

代码中有两重的for循环语句,首先对于外层循环,i的值初始化为1,内层循环j的取值范围为1~9,依次输出ij的值,因此首先输出第一行:

当内层循环j遍历结束后,输出一个换行符。回到外层i循环,i取值变为2,j取值范围为1~9,依次输出ij的值:

如此继续循环,直到输出完整的乘法表。
练习题4-2:尝试修改代码,打印出如下带表头的九九乘法表。

利用双重for循环语句,可以绘制出图4-9所示的多层圆盘。注意,需要先绘制半径大的扇形,再绘制半径小的扇形,因为先绘制的会被后绘制的遮挡。另外,不同半径的扇形之间有9度偏移量。

完整代码
Sub 游戏执行过程(hWndForm As hWnd)
Dim gg As yGDI = hWndForm
gg.Cls BGR(180, 180, 180) 'GDI的颜色值。
gg.Pen 0, 0 '设置线条为没有
Dim i As Long, j As Long, 度 As Long
For j = 110 To 30 Step -25
For i = 0 To 350 Step 18
画扇形(gg, 120, 120, j, i + 3 + 度, i + 0 + 度, BGR(0, 0, 0))
画扇形(gg, 120, 120, j, i + 8 + 度, i + 3 + 度, BGR(255, 0, 0))
画扇形(gg, 120, 120, j, i + 13 + 度, i + 8 + 度, BGR(255, 255, 255))
画扇形(gg, 120, 120, j, i + 18 + 度, i + 13 + 度, BGR(0, 255, 255))
Next
度 += 9
Next
End Sub
进一步,对圆心坐标变量centerX、centerY用for循环遍历,就可以绘制出多个圆盘效果

Sub 游戏执行过程(hWndForm As hWnd)
Dim gg As yGDI = hWndForm
gg.Cls BGR(180, 180, 180) 'GDI的颜色值。
gg.Pen 0, 0 '设置线条为没有
Dim i As Long, j As Long, 度 As Long
Dim As Long centerX, centerY
For centerX = 70 To 310 Step 120
For centerY = 70 To 190 Step 120
For j = 60 To 20 Step -20
For i = 0 To 350 Step 18
画扇形(gg, centerX, centerY, j, i + 3 + 度, i + 0 + 度, BGR(0, 0, 0))
画扇形(gg, centerX, centerY, j, i + 8 + 度, i + 3 + 度, BGR(255, 0, 0))
画扇形(gg, centerX, centerY, j, i + 13 + 度, i + 8 + 度, BGR(255, 255, 255))
画扇形(gg, centerX, centerY, j, i + 18 + 度, i + 13 + 度, BGR(0, 255, 255))
Next
度 += 9
Next
Next
Next
End Sub
练习题4-3:尝试利用嵌套的for循环语句,绘制出图中的效果。

评论一下?