7.3 条件语句

当程序中遇到两种或更多的选择时,就需要使用条件语句对程序的执行路径进行抉择。C#的条件语句包括if语句和switch语句。下面分别讲讲这两种语句。

7.3.1 if语句

除了要学会if的用法,还要学习配合使用else if和else语句,它们可以配合if完成对其他情况的处理。if语句是最常用的条件判断语句,它根据一个布尔表达式的计算结果来选择要执行的语句,当表达式的结果为true时执行一个操作,为false时则执行另一个操作,如图7-4所示。

7.3 条件语句 - 图1

图 7-4 if语句

语法如下:

7.3 条件语句 - 图2

下面,我们通过代码进行说明:


1 using System;

2

3 namespace ProgrammingCSharp4

4{

5 public class StatementSample

6{

7 static void Main()

8{

9 int x=10;

10 if(x>5)

11{

12 Console.WriteLine(“x值大于5!”);

13}

14}

15}

16}


如果要解决的问题比较简单,只有一种条件需要判断,那么只需要使用if语句就已足够。但是,问题往往不会这么简单,比如我们买房,不同的楼盘价格不同,不同的楼层价格也不同,如果要写一段程序帮助准用户计算购房价格,就要对各种情况进行处理,即需要根据多个条件进行判断,单纯的一个if已经不够了,这时可以扩展if语句,使用多个else-if来处理多个条件。

其流程如图7-5所示。

7.3 条件语句 - 图3

图 7-5 使用if……else if处理多个条件的情况

语法如下:

7.3 条件语句 - 图4

if……else if语句的代码示例我们通过代码清单7-1进行介绍,另外,在代码清单7-1中还要对if语句和else if语句的用法进行对比,通过对两段程序的运行结果进行分析,希望以此来告知大家在对多个条件进行判断的时候,如何正确地使用if和else if。对于需要判断多个条件的情况,有两种选择:

❑使用多个if

❑使用else if排列

下面的代码示例对此进行分析,如代码清单7-1和代码清单7-2所示:

代码清单7-1 使用else if排列


1 using System;

2

3 namespace ProgrammingCSharp4

4{

5 public class StatementSample

6{

7 static void Main()

8{

9 int x=30;

10 if(x>5)

11{

12 Console.WriteLine(“x值大于5!”);

13}

14 else if(x>10)

15{

16 Console.WriteLine(“x值大于10!”);

17}

18 else if(x>20)

19{

20 Console.WriteLine(“x值大于10!”);

21}

22}

23}

24}


运行结果为:


x值大于5!


代码清单7-2 使用多个if语句


using System;

namespace ProgrammingCSharp4

{

public class StatementSample

{

static void Main()

{

int x=30;

if(x>5)

{

Console.WriteLine(“x值大于5!”);

}

if(x>10)

{

Console.WriteLine(“x值大于10!”);

}

if(x>20)

{

Console.WriteLine(“x值大于10!”);

}

}

}

}


运行结果为:


x值大于5!

x值大于10!

x值大于10!


通过对代码清单7-1和代码清单7-2的运行结果进行对比,我们可以发现,前者在条件得到满足以后立即退出条件判断,后面的语句都得不到执行(unreachable);相比之下,后者在第一个条件满足以后继续执行,对后面的所有if条件进行测试执行,因此在打印出“x值大于5!”后仍然继续执行。对代码清单7-2做如下修改,即可达到和代码清单7-1相同的效果,即每个条件测试完后,如果满足则使用return关键字[1]返回,如代码清单7-3所示。

代码清单7-3 使用return关键字


using System;

namespace ProgrammingCSharp4

{

public class StatementSample

{

static void Main()

{

int x=30;

if(x>5)

{

Console.WriteLine(“x值大于5!”);

return;

}

if(x>10)

{

Console.WriteLine(“x值大于10!”);

return;

}

if(x>20)

{

Console.WriteLine(“x值大于10!”);

return;

}

}

}

}


[1]return关键字将在第7.4.3节介绍。