VisualFreeBasic游戏趣味编程_4.5_循环的嵌套

2026-1-21 / 0 评论 / 40 阅读

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,依次输出i
j的值:

如此继续循环,直到输出完整的乘法表。

练习题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循环语句,绘制出图中的效果。

评论一下?

OωO
取消