VB.Net 循环

  • 循环

    在某些情况下,您需要多次执行一个代码块。通常,语句是按顺序执行的:函数中的第一个语句首先执行,然后执行第二个,依此类推。编程语言提供了各种控制结构,允许更复杂的执行路径。循环语句使我们可以多次执行一个语句或一组语句,以下是大多数编程语言中循环语句的一般形式-
    c loop_architecture
    VB.Net提供以下类型的循环来处理循环需求。单击以下链接以查看其详细信息。
    循环类型 描述
    Do 循环 当布尔条件为True或条件变为True时,它将重复封闭的语句块。它可以随时通过Exit Do语句终止。
    For...Next 循环 它将一组语句重复指定的次数,并且循环索引在循环执行时计算循环迭代的次数。
    For Each...Next 循环 它为集合中的每个元素重复一组语句。此循环用于访问和操作数组或VB.Net集合中的所有元素。
    While... End While 只要给定条件为True,它就会执行一系列语句。
    With... End With 它不是完全循环的构造。它执行一系列重复引用单个对象或结构的语句。
    嵌套循环 您可以在任何While,For或Do循环中使用一个或多个循环。
  • Do 循环

    语法
    
    Do { While | Until } condition
       [ statements ]
       [ Continue Do ]
       [ statements ]
       [ Exit Do ]
       [ statements ]
    Loop
    -or-
    Do
       [ statements ]
       [ Continue Do ]
       [ statements ]
       [ Exit Do ]
       [ statements ]
    Loop { While | Until } condition
    
    范例
    
    Module loops
       Sub Main()
          ' local variable definition 
          Dim a As Integer = 10
          'do loop execution 
          Do
              Console.WriteLine("value of a: {0}", a)
              a = a + 1
          Loop While (a < 20)
          Console.ReadLine()
       End Sub
    End Module
    
    尝试一下
  • For...Next 循环

    语法
    
    For counter [ As datatype ] = start To end [ Step step ]
       [ statements ]
       [ Continue For ]
       [ statements ]
       [ Exit For ]
       [ statements ]
    Next [ counter ]
    
    这是“for”循环中的控制流程-
    • init步骤首先被执行,并且只有一次。此步骤允许您声明和初始化任何循环控制变量。
    • 接下来,测试condition。如果为true,则执行循环主体。如果为假,则不执行循环主体,并且控制流仅在“for”循环之后跳转到下一条语句。
    • 在“for”循环的主体执行之后,控制流跳回到increment语句。该语句允许您更新任何循环控制变量。
    • 现在将再次测试condition。如果为true,则循环执行并重复执行过程(循环主体,然后是递增步,然后再次是条件)。条件变为假之后,“for”循环终止。
    范例
    
    Module loops
       Sub Main()
          Dim a As Byte
          ' for loop execution 
          For a = 10 To 20
              Console.WriteLine("value of a: {0}", a)
          Next
          Console.ReadLine()
       End Sub
    End Module
    
    尝试一下
    例如,如果要使用2的步长,则只需显示10到20之间的偶数-
    
    Module loops
       Sub Main()
          Dim a As Byte
          ' for loop execution 
          For a = 10 To 20 Step 2
              Console.WriteLine("value of a: {0}", a)
          Next
          Console.ReadLine()
       End Sub
    End Module
    
    尝试一下
  • For Each...Next 循环

    它为集合中的每个元素重复一组语句。此循环用于访问和操作数组或VB.Net集合中的所有元素。
    语法
    
    For Each element [ As datatype ] In group
       [ statements ]
       [ Continue For ]
       [ statements ]
       [ Exit For ]
       [ statements ]
    Next [ element ]
    
    范例
    
    Module loops
       Sub Main()
          Dim anArray() As Integer = {1, 3, 5, 7, 9}
          Dim arrayItem As Integer
         'displaying the values
          
          For Each arrayItem In anArray
             Console.WriteLine(arrayItem)
          Next
          Console.ReadLine()
       End Sub
    End Module
    
    尝试一下
  • While... End While 循环

    语法
    
    While condition
       [ statements ]
       [ Continue While ]
       [ statements ]
       [ Exit While ]
       [ statements ]
    End While
    
    范例
    
    Module loops
       Sub Main()
          Dim a As Integer = 10
          ' while loop execution '
          
          While a < 20
             Console.WriteLine("value of a: {0}", a)
             a = a + 1
          End While
          Console.ReadLine()
       End Sub
    End Module
    
    尝试一下
  • With ... End With 循环

    它不是完全循环的构造。它执行一系列重复引用单个对象或结构的语句。
    语法
    
    With object
       [ statements ]
    End With
    
    范例
    
    Module loops
       Public Class Book
          Public Property Name As String
          Public Property Author As String
          Public Property Subject As String
       End Class
       Sub Main()
          Dim aBook As New Book
          With aBook
             .Name = "VB.Net Programming"
             .Author = "Alex Mo"
             .Subject = "Information Technology"
          End With
          With aBook
             Console.WriteLine(.Name)
             Console.WriteLine(.Author)
             Console.WriteLine(.Subject)
          End With
          Console.ReadLine()
       End Sub
    End Module
    
    尝试一下
  • 嵌套循环

    VB.Net允许在另一个循环中使用一个循环。以下部分显示了一些示例来说明这一概念。
    VB.Net中嵌套的 For 循环语句的语法如下-
    
    For counter1 [ As datatype1 ] = start1 To end1 [ Step step1 ]
       For counter2 [ As datatype2 ] = start2 To end2 [ Step step2 ]
          ...
       Next [ counter2 ]
    Next [ counter 1]
    
    VB.Net语言中的嵌套While循环语句的语法如下-
    
    While condition1
       While condition2
          ...
       End While
    End While
    
    VB.Net语言中嵌套Do ... While循环语句的语法如下-
    
    Do { While | Until } condition1
       Do { While | Until } condition2
          ...
       Loop
    Loop
    
    关于循环嵌套的最后一点是您可以将任何类型的循环放入任何其他类型的循环中。例如,for循环可以在while循环内,反之亦然。
    范例
    
    Module loops
       Sub Main()
          ' local variable definition 
          Dim i, j As Integer
          For i = 2 To 100
             For j = 2 To i
                ' if factor found, not prime
                If ((i Mod j) = 0) Then
                   Exit For
                End If
             Next j
                If (j > (i \ j)) Then
                   Console.WriteLine("{0} is prime", i)
                End If
             Next i
          Console.ReadLine()
       End Sub
    End Module
    
    尝试一下
  • 循环控制语句

    循环控制语句从其正常顺序更改执行。当执行离开作用域时,在该作用域中创建的所有自动对象都将被销毁。VB.Net提供以下控制语句。
    控制声明 描述
    Exit 声明 终止循环或Select Case语句,并在循环或Select Case后立即将执行的语句。
    Continue 声明 使循环跳过其其余部分,并在重新进行迭代之前立即重新测试条件。
    GoTo 声明 将控制权转移到带标签的语句。尽管不建议在程序中使用GoTo语句。
  • Exit 声明

    Exit语句将控制权立即从过程或块转移到过程调用或块定义之后的语句。它从调用它的地方终止循环,过程,try块或select块。如果使用嵌套循环(即,另一个循环中的一个循环),则Exit语句将停止执行最里面的循环,并开始执行该块之后的下一行代码。
    语法
    
    Exit { Do | For | Function | Property | Select | Sub | Try | While }
    
    范例
    
    Module loops
       Sub Main()
          ' local variable definition 
          Dim a As Integer = 10
          ' while loop execution '
          
          While (a < 20)
             Console.WriteLine("value of a: {0}", a)
             a = a + 1
             If (a > 15) Then
                'terminate the loop using exit statement 
                Exit While
             End If
          End While
          Console.ReadLine()
       End Sub
    End Module
    
    尝试一下
  • Continue 声明

    Continue语句使循环跳过其主体的其余部分,并在重新进行迭代之前立即重新测试其条件。它的工作有点像Exit语句。而不是强制终止,它会强制执行循环的下一次迭代,从而跳过之间的任何代码。对于For ... Next循环,Continue语句使条件测试和循环的增量部分执行。对于While和Do ... While循环,continue语句使程序控制传递给条件测试。
    语法
    
    Continue { Do | For | While }
    
    范例
    
    Module loops
       Sub Main()
          ' local variable definition 
          Dim a As Integer = 10
          Do
             If (a = 15) Then
                ' skip the iteration '
                a = a + 1
                Continue Do
             End If
             Console.WriteLine("value of a: {0}", a)
             a = a + 1
          Loop While (a < 20)
          Console.ReadLine()
       End Sub
    End Module
    
    尝试一下
  • GoTo 声明

    注 – 在任何编程语言中都强烈建议不要使用goto语句,因为它会使跟踪程序的控制流变得困难,从而使程序难以理解和修改。可以重写任何使用goto的程序来避免使用它们。
    GoTo语句将控制无条件地转移到过程中的指定行。GoTo语句的语法是-
    语法
    
    GoTo label
    
    范例
    
    Module loops
       Sub Main()
          ' local variable definition 
          Dim a As Integer = 10
    Line1:
          Do
             If (a = 15) Then
                ' skip the iteration '
                a = a + 1
                GoTo Line1
             End If
             Console.WriteLine("value of a: {0}", a)
             a = a + 1
          Loop While (a < 20)
          Console.ReadLine()
       End Sub
    End Module
    
    尝试一下