亮剑.NET:图解ASP.NET网站开发实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.3.1 选择语句

当程序中需要进行2个或2个以上的选择时,可以根据条件判断来选择将要执行的一组语句,C#提供的选择语句有if/else语句和switch/case语句。

1.if-eIse语句

if-else结构的语法如下:

if(关系表达式)
{
    关系表达式结果为真时执行的语句块
}
else
{
    关系表达式结果为假时执行的语句块
}

注意

● else部分是可选的,如果只在表达式为真时执行语句,表达式为假时不需要执行,就不需要else部分了。

● 关系表达式也可以用布尔型的变量或常量代替。

当有多个选择项时可以使用if-else if-else结构,语法如下,其中else if部分可以有多个:

if(关系表达式1)
{
    关系表达式1结果为真时执行的语句块
}
else if(关系表达式2)
{
    关系表达式2结果为真时执行的语句块
}
. . .
else
{
}

关系表达式1和关系表达式2结果都为假时执行的语句块

来看下面的例子,判断一个数是否大于等于60,如果不是,则输出“成绩不合格”;如果是,还要判断是否等于100。如果等于100,输出“满分”,否则输出“成绩合格”,流程图如图2-1所示。

图2-1 示例流程图

相应的代码如下:

上例中包含了if和else的嵌套,要注意它们的对应关系,即哪个else是和哪个if对应的。

2.switch-case语句

在if语句中遇到多种判断时可以使用else if语句,但当要判断的条件越来越多时,书写起来就显得太麻烦了。为此,C#又定义了另一种条件语句:switch-case语句,语法如下:

switch(变量)
{
    case值1:
        语句
        break;
    case值2:
        语句
        break;
        ...
...
...
    default:
        语句
        break;
}

注意

● 每一个case块都必须有break语句或goto语句。

● case语句之间出现多条语句时可不必用大括号括起来。

请看下面的例子,如流程图2-2所示。

图2-2 示例流程图

将图2-2的流程用Switch-case语句表达出来代码如下: