Visual Basic .NET/分支语句
分支语句,或条件语句,是代码,允许您测试语句是真还是假,然后根据这些比较执行一些代码。
- If/Endif
- If/Else/Endif
- If/ElseIf/Else/Endif
- Select Case/End Select
以下是简单 if 语句的示例
Dim value as integer
value = 4
if value < 10 Then
console.write("value is less than 10)
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 语句用于根据多个测试条件或语句有条件地执行代码。如果 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 语句通常用于避免长串的 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