Visual Basic.NET+SQL Server全程指南
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

实例2-19 循环嵌套举例以For...Next为例

该实例实现步骤如下。

1 创建窗体

在本章的项目chapter2中,右键单击解决方案资源管理器中项目名下面对应节的文件夹“控制流程”,在弹出菜单中选择“添加”→“Windows窗体”菜单命令,在弹出的对话框中输入窗体名CycFNextFrm,单击“添加”按钮完成窗体的创建。

2 添加控件

在窗体上添加两个Textbox控件,用于接收用户的输入信息和显示排序结果。

添加两个Label控件对相关信息进行的说明。

在窗体上添加一个Button按钮,用于手动单击按钮时实现对用户输入的10个整数排序。

3 添加代码

本实例由一个窗体组成,名称为CycFNextFrm.vb。

双击按钮,进入该按钮的单击事件代码中,向其中添加代码2-23。

代码2-23 CycFNextFrm.vb

        01  Public Class CycFNextFrm
        02      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
    System.EventArgs) Handles Button1.Click
        03          Dim str, str1 As String
        04          Dim array(10) As Integer
        05          Dim i, j, k, t As Integer
        06          str = Me.TextBox1.Text '将Textbox1中所输入的内容赋给字符串变量str
        07          For i = 0 To 8
        08              str1 = str.Substring(0, str.IndexOf(",")) '获得str中第一个“,”
    '之前的字符串str1
        09              array(i) = CInt(str1.Trim) '将该字符串转换为整数赋给数组
        10              str = str.Remove(0, str1.Length + 1) '从字符串str中移除字符串
    'str1和其后的“,”
        11          Next 'i+1,并回到For循环中
        12          array(9) = CInt(str.Trim) '将str中最后一个“,”之后的字符串转换成整数
    '赋为数组第9个元素
        13          i = 0
        14          '从大到小排序数组
        15          For i = 0 To 8
        16          '将第i+1 个元素和其后的所有元素进行比较,获得其中最大的数,交换到第i+1'
    的位置
        17              For j = i + 1 To 9
        18                  If array(i) < array(j) Then
        19                       t = array(i)
        20                       array(i) = array(j)
        21                       array(j) = t
        22                  End If
        23              Next
        24          Next
        25          str = ""
        26          '将排列好的数组各元素连接用“,”为一个字符串,显示在Textbox2上
        27          For k = 0 To 8
        28              str = str & array(k) & ","
        29          Next
        30          str = str & array(9)
        31              Me.TextBox2.Text = str
        32          End Sub
        33      End Class

代码2-23的执行步骤如下:

① 第6行代码用来获得用户输入的信息,赋给字符串变量Str;

② 第7行代码判断计数器的值是否满足条件,若满足则执行其下面的语句,若不满足则跳到Next后执行Next下面的代码;该行代码用于依次遍历下标为0到8的数组,方便为其赋值;

③ 第8行和第9行代码用Substring函数获得str中第一个“,”之前的字符串将其转换为整型赋给数组;

④ 第10行代码将第③步获得的字符串和其后的“,”从字符串str中移除;

⑤ 第11行代码将计数器加1,返回到第②步执行;

⑥ 第12行代码将str中最后一个“,”之后的数作为数组最后一个元素;

⑦ 第13行代码值得注意的是,在前面的代码中已将计数器i的值增至8,故在使用它时要对它重新赋值;

⑧ 第15行到第24行代码使用For循环嵌套来排序数组中的元素,将数组中下标在前面的元素与其后的所有元素比较并找到最大的数,换到该下标位置;

⑨ 第27 行到第29 行代码将数组中(除最后一个元素外)的各元素用“,”连接到一个字符串str上;

⑩ 第30行和第31行代码将数组中最后一个元素连接到str上,并将其显示在Textbox2上。

4 运行结果

按F5键,运行程序,结果如图2-26所示。

图2-26 实例2-19运行结果

2.4.4 注释语句和续行符

1.注释语句

如果程序很长很复杂,程序员自己也不能一目了然,这样就要加入注释语句,帮助更清晰、更快速地阅读和理解源代码;而对于要在不同程序员编写的代码基础上进行再次编写的情况,注释更是必不可少的。

注释可以直接追加到程序语句的后面,以单引号(')开始,或者用单引号(')或Rem开始新行,Rem不能在程序语句后注释,也就是只能注释新行。两种注释语句的用法如代码2-24所示。

代码2-24两种注释语句

        1.  Sub add(ByVal a, ByVal b)  ''Sub过程,2个参数a和b
        2.      MessageBox.Show(a + b)
        3.      Rem对话框显示a + b的结果
        4.  End Sub

在代码2-24中,第1行代码的注释用了双引号,是为了看得更清楚,实际起作用的只是最前面的单引号。

第3行代码用了Rem关键字,整行用来注释上面一行代码。

2.续行符

有时候一句代码太长,不拖动平行滚动条往往无法看到一整行代码,代码也不会自动换行,这就需要加入续行符使一行很长的代码可以分两行显示,续行符用(_)来表示,写在上一行代码末尾。

如下代码是计时器控件的Tick事件,为了不使代码过长,使用续行符(_)将一行换成两行来显示。

        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e _
        As System.EventArgs)Handles Timer1.Tick  ''下画线(_)为续行符