Visual Basic 第六章 循环程序结构 主要内容 For...Next 语句 Do…Loop 循环语句 列表框 组合框
For …Next 循环语句 格式: For <计数器>=<初值> to <终值> [step <步长>] <语句块> Next <计数器> 注: <计数器>必须是数值型变量 步长可正可负,也可以带小数,缺省值为1 当计数器达到或超过终值时,终止循环。 可用 Exit For 语句强行中止循环 例
For…Next循环的流程图 Yes No 如果在循环体中遇到 Exit For 语句,则强行中止循环 计数器=<初值> 保存终值和步长 (For语句) For <计数器>=<初值> to <终值> [step <步长>] <语句块> Next <计数器> 计数超过终值? Yes Next的下条语句 No 如果在循环体中遇到 Exit For 语句,则强行中止循环 语句块(循环体) 计数器加上步长 (Next语句)
例1:求100以内所有奇数之和 计算:S=1+3+5+7+……+99 S=0 ‘ S用于保存累计值,初值为0 For K = 1 to 100 step 2 ‘K-计数器,步长2 S = S + K ‘K=1,3,5,…,99 Next K ‘K+2(步长),再执行循环语句 ‘直到K>=100(终值) Print “100以内所有奇数之和为“; S ‘输出结果
例2:输出图案(P110,例6-7) For i = 1 To 5 ‘对1~5行 Print Tab(5 + i); ‘跳到第5+i列 Print String(6 - i, “★”); ‘打印6-I个★ ‘输出6个空格,i个▲ Print Spc(6); String(i, “▲”); ‘再输出6个空格,6-i个☆ Print Spc(6); String(6 - i, "☆") Next i 注意Tab、Spc和String函数的用法
例3:二重循环实例:九九乘法表 For m = 1 To 9 Forecolor=vbRed print m; Forecolor=vbBlue For n = 1 To m Print Tab(n*4); m*n; Next n Print '换行 Next m
For Each...Next循环 语法格式: For Each <元素> In <集合> 语句块 For Each...Next 循环是以对象集合中的每一个元素作为重复依据的,如果不知道一个集合有多少元素, For Each...Next 循环非常有用。 语法格式: For Each <元素> In <集合> 语句块 Next <元素>
例:移动窗体中所有控件(Controls) Private Sub form_Click() Dim ob1 As Object For Each ob1 In Controls ob1.Left = ob1.Left + 20 Next ob1 End Sub
Do…Loop语句 Do While <条件> <语句块> Loop Do Until <条件> 前测型 后测型 Do <语句块> Loop While <条件> Do <语句块> Loop Until <条件> Until <条件> 相当于 While not <条件> 可用 Exit Do 中止循环
前测型与后测型的比较 至少执行一次 先测试 No 条件 语句块 Yes 语句块 条件 Yes No Loop的下条语句 Loop的下条语句 后测型 Do <语句块> Loop While <条件> 前测型 Do While <条件> <语句块> Loop
例:国王的奖励 国王要奖励棋王,棋王要求在棋盘第1格放1粒麦子,第2格加倍,第3格再加倍,直到放到第64格。国王想一想就同意了。国王粮仓里有10万吨麦子, 1粒麦子只有0.1克,请问 国王的麦子可以奖励棋王 到棋盘的第几格?
例:国王的奖励(程序) Private Sub Command1_Click() Dim q As Single, k As Integer q = 0.0001: k= 1: s=q ’初值q=0.1g,k=1(第1格) Do While s < 1E8 ’10万吨 k=k+1 : q = q * 2 : s = s+ q Loop Print "第" & k & "格" End Sub
ListBox(列表框)及其主要属性 List(i): 设置列表框中包含的项(数组) ListIndex: 当前所选列表项的下标 用于显示项目列表。用户可以从列表框中的一系列选项中选择一个或多个选项。主要属性: List(i): 设置列表框中包含的项(数组) ListIndex: 当前所选列表项的下标 ListCount: 列表项的总数 Text:当前项文本内容 MultiSelect:设置是否能够做多个选择 Selected (i) : 数组,选中的项(Boolean) Sorted: 设置是否按字母顺序排列各项 例
ListBox(列表框)的主要方法 AddItem 项目[,位置] 添加项目。 例如:List1.AddItem “王平”,0 RemoveItem 位置 删除项目 例如:List1. RemoveItem 0 (删除第一项) Clear 删除所有项目 例如:List1.Clear 例
ComboBox(组合框)及其主要属性 文本框与列表框的组合,其主要属性与列表框相同 Style: 显示方式 List(i): 设置组合框中包含的项(数组) ListIndex: 当前所选列表项的下标 ListCount: 列表项的总数 Text: 当前项文本内容 Sorted: 设置是否按字母顺序排列各项 Style: 显示方式
ComboBox 的 Style 属性 0-DropDown Combo 下拉组合框 1-Simple Combo 简单组合框 2-DropDown List 下拉列表框
组合框-ComboBox的方法 AddItem 添加项目。 例如:Combo1.AddItem “王平”,0 RemoveItem 删除项目 例如:Combo1. RemoveItem Combo.ListIndex (删除当前项) Clear 删除所有项目 例如:Combo1.Clear