分支结构用于判断并分支,根据判定的结果(True或False)决定将要执行的语句 。VB .NET提供了两个条件语句用于实现分支结构,即If语句和Select…Case语句 。
1. If语句
If语句是在编程时经常用到的语句之一,它判断条件表达式是否成立,根据条件表达式成立与否来决定某些程序将要执行的语句 。
(1) If…Then…Else语句
语法:
If 条件表达式 Then
语句块1
[Else
语句块2]
End If
语法格式中的[],表示其中的内容为可选项 。该If语句的执行过程为:首先判断条件表达式的真假,如果为真,则执行Then后面的语句块1;如果为假,则执行Else后面的语句块2,如图3-3a所示 。若省略Else子句,当条件表达式的值为假,则跳过条件语句而去执行条件语句后的语句,如图3-3b所示 。
|
图3-3 If语句执行流程图 |
例如:
If x S = x 当xEnd If
再如:
If a>b Then
Max = a
Else
Max = b 当aEnd If
(2) If语句的嵌套
If语句本身也是一种语句,它也可以成为其他If中的语句,从而形成If语句中又有If语句的情形,称为If语句嵌套 。因为在If子句和Else子句中都可以出现If语句,因此If语句嵌套的形式有多种,下面给出其中的一种形式 。
If语句嵌套形式之一:
If 条件表达式1 Then
If 条件表达式2 Then
语句块2-1
Else
语句块2-2
End If
Else
语句块2
End If
例如:
If x>0 Then
If x>10 Then
Response.Write(x & " 大于10")
Else
Response.Write(x & " 是小于10的正数")
End If
Else
Response.Write(x & " 是负数")
End If
在程序设计中还经常有逐一判断条件的情况,即先判断条件1,若不成立再判断条件2,依次类推,此时可采用以下语句 。
逐一过滤条件的If…ElseIf语句:
If 条件表达式1 Then
语句块1
ElseIf条件表达式2 Then
语句块2
……
ElseIf条件表达式n Then
语句块n
Else
语句块n+1
End If
该嵌套If语句的执行过程如图3-4所示 。条件表达式1首先被计算,若该条件表达式的值为“True”,那么执行语句1;若不是“True”而是“False”,则计算下一个条件表达式(即条件表达式2)的值,依此类推;若所有条件表达式的值都不是“True”,则执行“Else”子句下的语句块n + 1 。
|
图3-4 If 语句的嵌套结构 |
【例3.2】写一个程序,判断所输入年份是否是闰年 。闰年的条件是:
1) 能被4整除,但不能被100整除的年份是闰年;
2) 能被100整除,又能被400整除的年份是闰年 。
程序运行时,首先显示如图3-5所示的界面,当用户输入一个年份值并按下“提交”按钮后,将返回该年是否为闰年的判断结果,如图3-6所示 。
|
图3-5 输入界面 |
|
图3-6 判断结果 |
源代码如下(Ex3-2.aspx):
请您输入一个年份,我们帮您判断是否闰年
程序在
部分定义了BtnExe_Click过程,其主要功能是判断用户在输入框中输入的年份值是否正确,若不正确,将给出出错提示;若正确,则按算法判断该年是否闰年并以标签控件LblCaution返回结果 。设计中使用了If语句嵌套,要注意Else子句总是与离它最近的尚未配对的If结合 。
2. Select…Case语句
Select…Case语句对一个结果的多个分支进行判断,可以用来在多个可能的情况中选择一个条件,而不再需要用大量嵌套的If…Else…If…Else…If结构 。
语法:
Select Case变量或表达式
Case 值1
语句块1
Case 值2
语句块2
……
Case 值n
语句块n
[Case Else
语句块n+1]
End Select
Select…Case语句的执行过程如图3-7所示 。
其中,“值i”与“变量或表达式”的类型相同,可以是数值、字符串或与要测试的其他情况相关的值 。当变量或表达式的值与值1相匹配时,执行语句块1;与值2相匹配时,执行语句块2;与值n相匹配时,执行语句块n;若所有值都不匹配,则执行语句块n+1 。
注意:“Case”中可以包含若干个值,之间可用逗号分隔,例如 1,2,6;也可以是一个数据范围,例如1 to 10 。
【例3.3】考试成绩分数到等级的对应变换程序:根据输入的成绩整数值(0'100)输出对应的等级,规定:90'100分为优秀;80'89分为良好;70'79分为中等;60'69分为及格;0'59分为不及格 。若输入的成绩数值不在0'100分之间,则提示出错 。
|
图3-7 Select…Case语句的执行过程 |
程序运行时,首先显示如图3-8所示的界面,当用户输入一个成绩值并按下“提交”按钮后,将返回该成绩对应的等级,如图3-9所示 。
|
图3-8 分数输入界面 |
|
图3-9 返回等级结果 |
源代码如下(Ex3-3.aspx):
请您输入成绩
在
部分的程序,将TxtGrade控件上的文本转换为数值,接下来依次判断,若数值在“90 to 100”之间,那么就执行LblCaution.Text = "优秀";否则,继续判断数值是否在“80 to 89”之间,若是就执行LblCaution.Text = "良好";依此类推 。若没有一个条件满足,就会执行Case Else后的代码 。
【责任编辑:老杨 Tel:(010)68576606-8005】