跳转到内容

Visual Basic .NET/分支语句

来自维基教科书,自由的教科书

分支语句,或条件语句,是代码,允许您测试语句是真还是假,然后根据这些比较执行一些代码。

分支语句

[编辑 | 编辑源代码]
  1. If/Endif
  2. If/Else/Endif
  3. If/ElseIf/Else/Endif
  4. Select Case/End Select

分支语句解释

[编辑 | 编辑源代码]

If...EndIf语句

[编辑 | 编辑源代码]

以下是简单 if 语句的示例

    Dim value as integer
    value = 4
    if value < 10 Then
    console.write("value is less than 10)
    Endif

If...Else...EndIf 语句

[编辑 | 编辑源代码]

请参考以下示例

    Dim iJunk1 as integer
    Dim iJunk2 as integer
    iJunk1 = 4
    iJunk2 = 7

IF 语句的实际格式是

    IF...THEN...ELSE...ENDIF

IF 语句总是测试左侧的条件或语句,以确定其是否为真结果

   ie: is iJunk1 = 4 ........ TRUE
   ie: is iJunk1 = 5 ........ FALSE
   ie: is iJunk1 > 7 ........ TRUE
   ie: is iJunk1 < iJunk2 ... TRUE

如果条件或语句为真,IF 语句将继续使用 THEN 运算符处理语句的顶部或下一部分。

如果 THEN 操作是一个单语句,它可以与测试条件写在同一行

    IF iJunk1 = 4 THEN iJunk2 = 10

如果 THEN 操作需要两个或更多个语句,您会发现,当每个语句独占一行时,整个 IF 语句更容易阅读。

    IF iJunk1 = 4 THEN
       iJunk1 = iJunk1 + 3    'iJunk1 would then = 7
       iJunk2 = iJunk2 + 1    'iJunk2 would then = 8
    ENDIF

如上所示,IF 语句不需要 ELSE 子句,也可以不使用 ELSE 子句。

当您的 IF 语句需要处理真条件和假条件时,需要使用 ELSE 子句。

    IF iJunk = 4 THEN 
       (execute the True code) 
    ELSE 
       (execute the False code) 
    ENDIF

   IF  NOT iJunk1 = 4 THEN          ' Be carefull of the use of the NOT clause
       (execute the True code)      'iJunk1 is NOT = 4
    ELSE 
       (execute the False code)     'iJunk1 is = 4
    ENDIF

有时,当您将条件或语句放在括号内时,更容易阅读。

    IF  NOT (iJunk1 = 4) THEN ............

If...ElseIf...Else...EndIf 语句

[编辑 | 编辑源代码]

If/ElseIf 语句用于根据多个测试条件或语句有条件地执行代码。如果 If 语句中提供的条件计算为真,则执行块中的代码。否则,执行将继续到 ElseIf 条件或语句,或继续到 Else 或 EndIf 语句。

ElseIf 和 Else 子句不是 If 语句的必需部分。

以下是 If/ElseIf/Else 分支语句的示例

 'The following variable declarations are for the following example only. They are not needed in real life.
 Dim x As Integer
 Dim y As Integer
 
 If x = y Then
   'Whatever will happen if x = y
 ElseIf x < y Then
   'Whatever will happen if x < y
 Else
   'Whatever will happen if x isn't = to y and x isn't < to y
 End If

Select Case 语句

[编辑 | 编辑源代码]

字符串或数字都可以用于 Select Case 语句。

Select Case 语句通常用于避免长串的 If/ElseIf/.../ElseIf/Else 语句。

以下是一个 Select 的示例

 Dim nCPU as Integer
 Select Case nCPU
     Case 0
         'No CPU!
     Case 1
         'Single CPU
     Case 2
         'Dual CPU machine
     Case 4
         'Quad CPU machine
     Case 3, 5 To 8
         '3, 5, 6, 7, 8 CPU's
     Case Else
         'Something more than 8
 End Select

布尔运算符

[编辑 | 编辑源代码]

Visual Basic .NET 中的布尔运算符现在支持短路布尔求值,大多数其他语言默认情况下总是应用短路布尔求值(通常,这可以通过编译器选项关闭),请考虑以下布尔语句

 functionA() and functionB()

对于此语句,当使用短路布尔求值时,只有当第一个函数返回真时,才会调用第二个函数,这是因为,如果 functionA 返回假,那么 functionB 返回真还是假就与语句的结果无关。

但是,当不使用短路布尔求值时,无论语句的第一部分返回真还是假,都会调用这两个函数。

需要注意的是,在使用短路布尔求值时,参数的顺序可能很重要。

由于以前的 Visual Basic 版本不支持短路布尔求值,因此微软决定保留向后兼容性,并添加了两个新的布尔逻辑标识符,它们支持短路布尔求值,所以除了标准的布尔运算符之外

 Not
 And
 Or
 Xor

还有两个新的运算符使用短路布尔求值,它们是

 AndAlso
 OrElse
华夏公益教科书