2.4 控制流程
本节主要讲述VB.NET的基本语句,包括顺序语句、条件语句和循环语句等。流程控制语句是编程语言中非常重要的部分,基本上每种语言都有其流程控制语句,用来控制程序的运行流程。
2.4.1 顺序语句
顺序结构就是代码依照它在程序中的位置按照顺序从上往下执行。如下面的示例代码,按从上到下的顺序依次执行。
Sub substr() Dim a As String Dim b As String Dim t As String a="Hello!" b="World!" t=b ''t="World!" b=a ''b="Hello!" a=t ''a="World!" End Sub
以上语句按照从上到下的顺序执行,主要借助变量t,实现变量a和b的交换。
2.4.2 条件语句
在有些情况下,需要基于一个条件执行一些代码,这时就要使用条件语句。VB.NET中的条件语句有If…Then…语句和Select Case…语句。
1.If…Then…语句
如果符合某个条件(即当条件为True时),就执行某些代码,反之,则执行其他代码。
If…Then…语句有单行和多行两种类型。使用单行语句执行基于一个条件的单个语句。If…Then…语句的单行语法如下:
If condition Then statement [Else statement]
其中,condition(条件)是一个布尔表达式。若条件为真,则执行Then后面的语句;反之,则执行Else后面的语句。且中括号中的内容即Else部分是可选的。
示例如下:
If a > 10 Then b = 20 Else c = 10
上面的例子说明了单行If…Then…语句的使用方法。例子判断变量a是否大于10,若比10大,则将变量b设置为20;反之,则执行Else后面的语句设置变量c为10。
在单行If…Then…语句的方式下,也可以使用多条语句,但所有语句都要在同一行,并要用冒号分开。语法如下:
If condition Then statement :[statement]:[statement]
示例如下:
If a > 10 Then b = 20 : MsgBox(b)
在上例中,先判断变量a是否大于10,若比10大,则将变量b的值设置为20,并显示一个消息框。但单行多条语句方式可能会影响代码的可读性。在这种情况下,可以采用多行语句的方式。多行语句语法如下:
If condition Then statement [Else [statement]] End If
在语法中使用的End If语句表示该条件语句的结束。
示例如下:
If a > 0 And b < 10 Then c = 20 Else c = 10 End If
但有时条件语句中有多个条件需要判断,此时,可用在If…Then…语句中使用Else If语句,语法如下:
If condition1 Then statement1 [ ElseIf condition2 [Then] [statement2] ElseIf condition3 [Then] [statement3] ... ] [Else [statementn]] End If
其中,若condition1为假,则控制转移到condition2;若condition2为真,则执行statement2;否则,控制转移到condition3;若condition3为真,则执行statement3;否则控制转移到下一个判断条件,直到条件为真为止。若在Else语句之前的所有条件都不为真,则执行Else后面的语句。
示例如下:
If a > 0 And a <= 10 Then c = 15 ElseIf a > 10 And a <= 20 Then
c = 25 ElseIf a > 20 And a <= 30 Then c = 35 Else c=100 End If
在这个例子中,若a的值为9即在0<a<=10范围内,则执行将变量c的值设置为15;若a的值为19,即10<a<=20范围内,则执行将变量c的值设置为25;若a的值为29,即在20<a<=30范围内,则执行将变量c的值设置为35;若a的值为39则前面判断条件都不正确,则执行Else后面的语句,设置c为100。
在程序中,可以有嵌套的If语句,可以按任何层次嵌套If语句,但需要有End If分开各个If语句。
下面以实例说明If…Then语句的使用。