当前位置:嗨网首页>书籍在线阅读

04-条件语句

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

6.2.1 条件语句

条件语句就是对条件进行判断,根据判断结果选择执行不同的分支。C#中提供了多种形式的条件语句,包括if语句、if…else语句和switch语句。

(1)单分支结构的if 语句。

语法格式如下。

if(条件表达式)
{语句序列}

105.png 如果条件成立(条件表达式的值为true),就执行条件表达式后面的语句序列中的语句。如果条件不成立(条件表达式的值为false),则跳过语句序列,继续执行if语句之后的语句。一般情况下,语句序列要用花括号括起来。例如,

01  int score = int.Parse(Console.ReadLine());    //输入成绩,保存在变量score中
02  if (score >= 60)                              //条件为score大于等于60
03  {
04       Console.WriteLine("及格!");              //条件成立,则输出"及格!"
05  }
06  if (score < 60)                               //条件为score小于60
07  {
08        Console.WriteLine("不及格!");           //条件成立,则输出"不及格!"
09  }

使用ReadLine()方法从键盘输入成绩,调用int.Parse()方法将输入值转换为int类型,保存在变量score中。第一个if语句的条件表达式为“score >= 60”,当条件成立,输出“及格! ”;条件不成立则跳过第一个if语句,转去执行第二个if语句。第二个if语句的条件表达式为“score < 60”,当条件成立,输出“不及格! ”;条件不成立则跳过第二个if语句,程序结束。两个if语句的条件表达式是相互独立,互不影响的。

**提示** if语句中的条件表达式的值应为bool型,表达式的值为true则条件成立,表达式的值为false则条件不成立。

下面的例子进一步说明了if语句的使用。

【范例6 -1】 输入学生成绩,输出学生的成绩等级。

(1)在Visual Studio 2013中新建控制台应用程序,项目名称为“ScoreByIf”。

(2)在program.cs的main方法中输入以下代码。

01  Console.WriteLine("请输入成绩(0-100):");
02  int score = int.Parse(Console.ReadLine());
03  if (score >= 90)
04  {
05          Console.WriteLine("优秀!");
06  }
07  if (score >= 80 && score < 90)
08  {
09          Console.WriteLine("良好!");
10  }
11  if (score >= 70 && score < 80)
12  {
13          Console.WriteLine("中等!");
14  }
15  if (score >= 60 && score < 70)
16         {
17          Console.WriteLine("及格!");
18  }
19  if (score < 60)
20  {
21          Console.WriteLine("不及格!");
22  }
23  Console.ReadKey();

(3)双分支结构的if…else语句。

语法格式如下。

if(条件表达式)
{语句序列1}
else
{语句序列2}

其作用是如果条件表达式值为true,执行if后面的语句序列1;如果条件表达式值为false,执行else后面的语句序列2。

106.png

int score = int.Parse(Console.ReadLine());      //输入成绩,保存在变量score中
if (score >= 60)                                //条件为score大于等于60
{
        Console.WriteLine("及格!");            //条件成立,则输出"及格!"
}
else
{
        Console.WriteLine("不及格!");           //条件不成立,则输出"不及格!"
}

对比if语句的例子,可以看出,以上代码实现了使用一个if…else语句体现两个if语句的功能。思考一下,什么时候可以这样做?

(4)多分支结构。

if语句实现多分支结构的语法如下。

if(表达式1)
{  语句序列1         //表达式1的值为true时执行的语句}
else if(表达式2)
{  语句序列2         //表达式2的值为true时执行的语句}
…
else if(表达式n)
{ 语句序列n          //表达式n的值为true时执行的语句}
else
{ 语句序列n+1        //表达式1到n的值都为false时执行的语句}

107.png 注意,当表达式1的值为true,执行语句序列1,然后if语句的执行结束。只有当表达式1的值为false时,才需要考虑表达式2的值,表达式2的值为true,则执行语句序列2,然后结束if语句。只有当表达式2的值为false,才需要考虑表达式3的值。依此类推,只有表达式1、2、3…n-1的值都为false时,才需要考虑表达式n的值,这时如果表达式n的值为true,则执行语句序列n,然后结束if语句,否则执行语句序列n+1。

【范例6-2】 使用多分支结构实现成绩等级评定。

(1)在Visual Studio 2013中新建控制台应用程序,项目名称为“ScoreByIfelse”。

(2)在program.cs的main方法中输入以下代码。

01  Console.WriteLine("请输入成绩(0-100):");
02  int score = int.Parse(Console.ReadLine());
03  if(score >= 90)
04  {
05          Console.WriteLine("优秀!");
06  }
07  else if(score >= 80)
08  
09          Console.WriteLine("良好!");
10  }
11  else if(score >= 70)
12  {
13          Console.WriteLine("中等!");
14  }
15  else if(score >= 60)
16  {
17          Console.WriteLine("及格!");
18  }
19  else 
20  {
21           Console.WriteLine("不及格!");
22  }
23  Console.ReadKey();

【范例分析】

使用多分支结构可以让程序看起来更加简洁,但是要注意多分支结构中多个条件表达式之间的关系。例如,上面的代码中要执行条件表达式“score >= 80”后的语句“Console.WriteLine("良好!");”的前提是条件表达式“score >= 90”为false,也就是说,当条件score >= 80 && score < 90成立时才执行语句“Console.WriteLine("良好!");”