在编程时,我们有时候需要多次执行同样的任务,比如读取一个文件夹里的每个文件,读取一个表里的每条记录等。这时候,我们就需要用到循环 (Loop) 语句。
我们从最容易理解的 For...Next 循环语句说起。For...Next 循环语句基本结构如下:
For...(表达式) = ...(值) To ...(值)
...(执行代码)
Next
意思是,当某个表达式在两个值之间时 (大于等于最小值,小于等于最大值),重复执行一样的代码。
我们这就做个实际的例子。
打开 Visual Studio。在文件 (File) 菜单上,单击新建项目 (New Project)。 在新建项目 (New Project) 对话框的模板 (Templates) 窗格中,单击 Windows 应用程序 (Windows Application)。在名称 (Name) 框中键入 ForNext,再单击确定 (OK)。
选中工具箱 (Toolbox) 里的列表框 (ListBox) 控件,按住鼠标将其拖放到 Form 1 上。然后在属性 (Properties) 窗口内将其 Name 属性改为 lstData。
选中工具箱 (Toolbox) 里的按钮 (Button) 控件,按住鼠标将其拖放到 Form 1 上。然后在属性 (Properties) 窗口内将其 Name 属性改为 btnShow,将其 Text 属性设为 Show。
然后双击该 Button,显示代码编辑器 (Code Editor)。加入代码,使其显示如下:
Private Sub btnShow_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnShow.Click
Dim intCount As Integer
For intCount = 1 To 10
lstData.Items.Add("This is item " & intCount)Next
End Sub
选择调试 (Debug) 菜单中的开始调试 (Start Debugging),运行该程序。或者直接按快捷键 F5 运行。
你会看到 ListBox 里面有如下文字:
This is item 1
This is item 2
This is item 3
This is item 4
This is item 5
This is item 6
This is item 7
This is item 8
This is item 9
This is item 10
你还可以看到,每执行一次 For...Next 当中的代码,就自动递增 1。1 是 For...Next 循环语句的缺省步长 (Step)。
在缺省情况下,For...Next 语句的递增步长 (Step) 为 1。加上 Step 的 For...Next 语句结构如下:
For...(表达式) = ...(值) To ...(值) Step ...(值)
...(执行代码)
Next
我们拿刚才的实例修改一下 Step,将 Step 修改成 2,修改代码如下:
For intCount = 1 To 10 Step 2
这表示,每次执行后,intCount 加 2 。我们会看到运行后的结果如下:
This is item 1
This is item 3
This is item 5
This is item 7
This is item 9
同样举前面的 ListBox 的例子,假设你想先出现 Item 10,最后出现 Item 1,怎么办呢?
你可以将 Step 值设成负数,将最大值放在前面,最小值放在后面,这样就可以反向循环了。
我们修改代码如下:
Private Sub btnShow_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnShow.Click
Dim intCount As Integer
For intCount = 10 To 1 Step -1
lstData.Items.Add("This is item " & intCount)Next
End Sub
运行程序后,你会发现显示结果是数字从大到小排列了,如下:
This is item 10
This is item 9
This is item 8
This is item 7
This is item 6
This is item 5
This is item 4
This is item 3
This is item 2
This is item 1
提示
当说到循环时,经常用的术语叫迭代 (Iteration),迭代描述了从 For 到 Next 的重复执行过程。
作者:woyouxian[at]gmail[点]com
时间:2006-12-14
新思路站长网志 站长学院网页教程与代码
新思路站长网志信息中心
新思路站长网志 logo收藏