If 语句

If语句有三种形式

单分支形式:

If 条件表达式 Then
    代码

End If

如果条件表达式的计算结果为True,也就是条件成立的话,则执行代码。
例如在命令窗口输入下面的代码:

Dim Mark As Integer = 61
If
Mark >= 60 Then
    Output.Show(
"及格")
End
If

执行之后,上述的代码会得到结果"及格",如果将变量Mark的值改为59,则不会返回任何内容。

双分支形式:

If 条件 Then
    代码1

Else

    代码2

End
If

条件成立,则执行代码1,不成立,则执行代码2。
例如,在命令窗口输入下面的代码:

Dim Mark As Integer = 61
If
Mark >= 60 Then
    Output.Show(
"及格")
Else

    Output.Show(
"不及格")
End If

执行之后,上述的代码会得到结果"及格",如果将变量Mark的值改为59,则会得到结果"不及格"。

多分支形式:

If 条件1 Then
    代码1

ElseIf
条件2 Then
    代码2

ElseIf
条件3 Then
    代码3

    .....
Else

    代码X

End If

条件1成立,执行代码1,条件2成立,执行代码2,其余类推,所有条件均不成立,则执行代码X。
例如在命令窗口输入:

Dim Mark As Integer = 90
If
Mark >= 90 Then
    OutPut.Show(
"优秀")
ElseIf
Mark >= 80 Then
    OutPut.Show(
"良好")
ElseIf
Mark >= 60 Then
    OutPut.Show(
"及格")
Else

    OutPut.Show(
"不及格")
End
If

在命令窗口改变变量Mark的值,执行看看会得到什么结果。

条件拦截:

在多分支形式下,即使多个条件成立,if语句只会执行第一个满足条件的分支。
例如在命令窗口执行下面的代码:

Dim Mark As Integer = 90
If
Mark >= 60 Then
    OutPut.Show(
"及格")
ElseIf
Mark >= 80 Then
    OutPut.Show(
"良好")
ElseIf
Mark >= 90 Then
    OutPut.Show(
"优秀")
Else

    OutPut.Show(
"不及格")
End
If

虽然变量Mark等于90,但是输出的结果是“及格”,而不是“优秀”,因为Mark等于90的时候,第一个条件(Mark >=60)成立,所以输出“及格”,其余分支不再执行,直接跳转到End If。


本页地址:http://www.foxtable.com/webhelp/topics/0223.htm