一、For 循环语句:
在实际生活中,我们经常会遇到一些操作并不复杂,但需要重复多次处理的情况,如人口统计、银行利率的计算等,为此,Visual Basic 提供了循环语句来专门解决此类情况。
循环语句的具体情况,我们将在以后的章节中阐述,本节我们只是针对 For 循环语句做个大致的了解。
1、For ··· Next ···语句的一般格式:
For 变量 = Start To End [Step]
[需要循环的语句]
[Exit For]
Next 变量
说明:
(1)、For 后的“变量”与 Next 后的“变量”为同一个,“变量”应该是数值类型的。
(2)、Start 代表的是循环的初始值,End 代表的是循环的终值。假设从 1 到 100 进行循环,那么,循环初值是 1 ,终值是 100 ;假设从 1 到 50 进行循环,那么初值是 1 ,终值是 50 。
(3)、To 是循环中的关键字,表示从初值到终值的范围,不能省略。
(4)、Step 是步长值,代表变量的增量,既可以是正数(递增循环),也可以是负数(递减循环),但不能为 0 ,如果步长值为 1 即默认状态,可以省略不写。
(5)、需要循环的语句,既可以是一个,也可以是多个语句,但必须放在 For 与 Next 之间。
(6)、Exit For:当程序执行到此处,自动退出本层循环。
(7)、需要循环的语句与 Exit For 都可以省略,这时表示的是一个无内容的空循环,主要做为程序延迟使用。
2、示例一:
编写一个程序,用来计算 1 到 100 间所有整数的和是多少。
(1)、程序界面与控件属性:
程序界面与控件属性如图一,为了让大家看得更为清楚,我们将标签控件的 BoderStyle 属性设为 1 。
图一
(2)、程序功能:
用户点击“开始”按钮(CmdStart)开始计算,完成后将结果用标签(LblShow)显示出来。
(3)、书写代码:
“开始”按钮的点击事件:
Private Sub CmdStart_Click()
x = 0
For y = 1 To 100
x = x + y
Next y
LblShow.Caption = "最后的结果是:" & x
End Sub
说明:
(1)、1 到 100 中所有整数的和可以这样来看:1+2+3+······+100 ,即 100 次相加,那么这重复的 100 次相加可以通过 For 循环来完成。
(2)、程序中 y 只是用来决定循环次数的变量,通常的,我们会利用其他变量来编写程序,这里的 X 就是一个求和累加器,它的初值是 0 ,终值则是我们最后需要的数值。
(3)、X = X +y ,是指变量 X 与 y 相加后将新的值赋给 X 。当 X 为初始的 0 时,y 进入第一次循环即 y = 1 ,X + Y = 1 ;系统将 X = 1 记录下来,然后进入第二次循环即 y =2 ,X + Y = 3 (1 + 2),然后将 X = 3 记录下来并进入第三次循环,以此类推。这就将 1+2+3+······+100 的最终值算了出来。
(4)、经过第一百次循环,程序执行 Next y 后的语句,即将最后结果用标签显示出来。
3、示例二:
计算 1 到 100 间所有奇数的和。
只需将上例中的“开始”按钮的循环程序加上步长值即可。代码如下:
Private Sub CmdStart_Click()
x = 0郭富城
For y = 1 To 100 Step 2
x = x + y
Next y
LblShow.Caption = "最后的结果是:" & x 是label控件,名字是lblshow,作用是用来显示某些文字或数值。
End Sub
二、列表程序二:
1、程序界面:
最终的程序界面如图二:
图二
上一节的程序,一次只能移动一个表项。
2、前后两种程序的区别:
上一节的程序中,对单个表项进行移动,首先加入了是否选中的判断,然后再进行移动;全部移动,首先对目标框清零,再进行移动。它们虽然比较好理解,但程序的有效性却不佳。
本节的程序,对单个与全部表项进行移动,都采用循环法,可以一次移动多个表项。
3、程序代码:
(1)、窗体的载入事件(Form_Load)跟上一节一样:
Private Sub Form_Load()
LstLeft.AddItem "刘德华"
LstLeft.AddItem "张学友"
LstLeft.AddItem "郭富城"
LstLeft.AddItem "黎 明"
LstLeft.AddItem "谭咏麟"
LstLeft.AddItem "梅艳芳"
LstLeft.AddItem "张曼玉"
End Sub
(2)、向右按钮的点击事件(CmdRight):
Private Sub CmdRight_Click()
Dim X As Integer
While LstLeft.SelCount > 0
For X = 0 to LstLeft.LstCount - 1
If LstLeft.Selected(X) = True Then
LstRight.AddItem LstLeft.List(X)
LstLeft.RemoveItem X
Exit For
End If
Next X
Wend
End Sub
(3)、全部向右按钮的点击事件(CmdAllRight)
Private Sub CmdAllRight_Click()
Dim X As Integer
For X = 0 to LstLeft.ListCount - 1
LstRight.AddItem LstLeft.List(X)
Next X
LstLeft.Clear
发布评论