基本用法是:
If 条件1 Then
语句段
End if
或:
If 条件1 Then
语句段1
Else
语句段2
End if
这样使用If语句,就可以使程序有选择性的执行代码。
注意,If语句一定要有判断条件和执行语句,最后用 End If 结尾。但如果执行语句只有一条,就可以缩成一行,不必再写End If。如:
If 条件1 Then 语句1
或:
If 条件1 Then 语句1 Else 语句2
好,下面做这样一个题:输一个数,判断奇数还是偶数。
这时可以使用一个新的运算符——Mod。Mod可以对一个数取
余数。例如 10 / 3 = 3……1
则10 Mod 3 = 1。所以如果任意一个数 n Mod 2 = 1 这个数就是奇数了。所以
源代码十分简单:
Private Sub Command1_Click()
If Val(Text1.Text) Mod 2 = 1 Then
Label1.Caption = "这是奇数"
Else
Label1.Caption = "这是偶数"
End If
End Sub
这段代码应该很容易读懂了。但是有的朋友会说如果想加上判断非奇非偶的判断,怎么办呢?我们可以这样想,先判断是否奇数,再判断是否偶数,如果两者都不是,那就是非奇非偶了!这样的话,我们就要使用到多层次的函数了。把这个想法翻译过来,就是
If Val(Text1.Text) Mod 2 = 1 Then
Label1.Caption = "这是奇数"
Else
If Val(Text1.Text) Mod 2 = 0 Then
Label1.Caption = "这是偶数"
Else
Label1.Caption = "非奇非偶"
End If
End If
做着做着发现,当我们输入小数的时候,程序依然会输出奇偶,可小数无奇偶之分!所以我们要用一条函数来判断是否整数——Int()。该函数可以将一个数变为整数。所以如果 n = Int(n)那么这个数就是整数了。为了把这个条件加入判断,则应该使用
逻辑运算符 And 连接两个条件。必须两个条件同时成立,才能算是整条语句成立。
Private Sub Command1_Click()
If Val(Text1.Text) Mod 2 = 1 And Val(Text1.Text) = Int(Val(Text1.Text)) Then
Label1.Caption = "这是奇数"
Else
If Val(Text1.Text) Mod 2 = 0 And Val(Text1.Text) = Int(Val(Text1.Text)) Then
Label1.Caption = "这是偶数"
Else
Label1.Caption = "非奇非偶"
End If
End If
End Sub
这样,我们就可以判断非奇非偶的数了。
另外,刚才的If语句还有一种写法,就是 ElseIf。最终可以写成如下形式,可以对比一下上下两段。
Private Sub Command1_Click()
If Val(Text1.Text) Mod 2 = 1 And Val(Text1.Text) = Int(Val(Text1.Text)) Then
Label1.Caption = "这是奇数"
ElseIf Val(Text1.Text) Mod 2 = 0 And Val(Text1.Text) = Int(Val(Text1.Text)) Then
Label1.Caption = "这是偶数"
Else
Label1.Caption = "非奇非偶"
End If
End Sub
测试完之后,可以发现两段代码的效果完全一样呢。其实,这就是将多层次的If条件语句合并。目的是减少代码的长度,增加可读性。
当然,至于上面所讲过的If语句精简写法,这里不建议使用,否则语句太长了,影响可读性。在同一行上不能写Elseif,而要写Else If。例如:
If x<60 Then Print "D" Else If x<75 Then Print "C" Else If x<85 Then Print "B" Else Print "A"