vb.net 教程 2-3 流程控制:循环语句 For...Next 1

For...Next 语句用于执行重复操作

最简单的结构:
For 初始值 To 结束值
执行语句块
Next

例如下面的代码
    Sub Main()
        Dim i As Integer
        Dim s As Integer = 0
        For i = 1 To 100
            s += i
        Next
        Console.WriteLine("1-100相加结果为:" & s)
        Console.ReadKey()
    End Sub

执行结果:

做一下说明:
For i = 1 To 100 =>指定i的初始值为1,结束值为100,实际需要循环100次
s += i =>s的值加上i的值,这样整个循环类似于 0+1+2+...+100
Next =>进入下次循环

另外:
Dim i As Integer
For i = 1 To 100
可以简化到一句代码
For i As Integer = 1 To 100

for循环中一个重要的语句 Continue For,它的出现使得for循环提前进入下一次
例如,下面的代码
    Sub Main()
        Console.WriteLine("输出10-30中的偶数")
        For i As Integer = 10 To 30
            If i Mod 2 = 1 Then Continue For
            Console.WriteLine(i)
        Next
        Console.ReadKey()
    End Sub

代码中如果是奇数则进入下一个数,如果是偶数,则执行输出。也就是跳到了下一个数字。结果如下:

for循环另外一个重要的语句 Exit For,它的出现使得for循环提前结束,
参考以下代码
    Sub Main()
        Console.WriteLine("当值为20时,停止输出")
        For i As Integer = 10 To 30
            If i = 20 Then Exit For
            Console.WriteLine(i)
        Next
        Console.ReadKey()
    End Sub
当i=20时候,就停止了输出。运行结果如下:


循环的嵌套:一个循环内可以有一个或多个循环,每个循环内斗可以有一个或多个循环:
考虑以下例子:
对一组数按照由小到大的顺序进行排序:
    Sub Main()
        '需要排序的数字在数组内
        Dim source() As Integer = {32,12,44,43,79,1,10,65,21,53}
        '对循环次数进行计数
        Dim counti As Integer = 0

        Dim i As Integer
        Dim j As Integer

        Dim tmp As Integer

        '循环
        For i = 0 To 8
            '嵌套循环
            For j = 0 To (8 - i)
                '循环次数+1
                counti += 1
                '如果前面那个数大于后面那个数,就把前面那个数排到后面
                If source(j) > source(j + 1) Then
                    tmp = source(j)
                    source(j) = source(j + 1)
                    source(j + 1) = tmp
                End If
            Next
        Next
        '把数字输出来
        For j = 0 To 9
            Console.WriteLine(source(j))
        Next
        '输出循环次数
        Console.WriteLine("循环次数:{0}",counti)
        Console.ReadKey()
    End Sub
运行结果:

对于最外面的For,第一次循环,把79排到了最后面,第二次循环把65排到了倒数第二,。。。。
在看循环次数
i=0 ,j循环9次
i=1 ,j循环8次
。。。。。。
i=(9-1),j循环1次
9+8+7.。。。+1=45次


由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。

学习更多vb.net知识,请参看 vb.net 教程 目录

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...