7.3 条件语句
当程序中遇到两种或更多的选择时,就需要使用条件语句对程序的执行路径进行抉择。C#的条件语句包括if语句和switch语句。下面分别讲讲这两种语句。
7.3.1 if语句
除了要学会if的用法,还要学习配合使用else if和else语句,它们可以配合if完成对其他情况的处理。if语句是最常用的条件判断语句,它根据一个布尔表达式的计算结果来选择要执行的语句,当表达式的结果为true时执行一个操作,为false时则执行另一个操作,如图7-4所示。
图 7-4 if语句
语法如下:
下面,我们通过代码进行说明:
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-5 使用if……else if处理多个条件的情况
语法如下:
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节介绍。