C#提供了各式各样的语句,大多数是由C和C++发展而来,当然,在C#中做了相应修改。语句和表达式一样,都是C#程序的基本组成部分,在本文我们来一起学习C#语句。
1.语句
语句是构造所有C#程序的过程构造块。在语句中可以声明局部变量或常数,调用方法,创建对象或将值赋予变量、属性或字段。语句有很多种,其中,控制语句可以创建循环,如for循环;也可以根据一个布尔表达式的运算结果进行判断,并分支到不同的代码块,如if或switch语句。语句通常以分号终止。
按类别来分,C#的语句如表7-1所示。
本章将重点介绍选择语句、循环语句、跳转语句,其他语句将在相应文章中介绍。其中,checked语句和unchecked语句已在之前章节中介绍过,这里不再赘述。跳转语句中的yield和异常处理语句以及lock语句等将在后续文章中介绍。
2.程序的三种结构
程序的三种常用结构是:
顺序结构
分支结构
循环结构
在C#中,分支结构使用条件语句实现,循环结构使用循环语句实现。下面将分别介绍这三个重要结构。
2.1 顺序结构
C#中最常见的结构就是顺序结构,即按照语句编写的顺序依次执行,如图7-1所示。
2.2 分支结构
实际情况中,只有顺序结构往往是不够的,有时候我们需要根据某一个条件的判定结果来确定程序的执行路径,如图7-2所示。C#中控制分支结构的语句包括:
if......else if......else......语句
switch语句
三元运算符(?:)
2.3 循环结构
当某一条件成立时,重复执行某段程序(循环体)。C#的循环结构的语句包括:
for循环
while......do......循环
do......while......循环
图7-3分别对应上述三种控制循环结构语句。
3.条件语句
当程序中遇到两种或更多的选择时,就需要使用条件语句对程序的执行路径进行抉择。C#的条件语句包括if语句和switch语句。下面分别讲讲这两种语句。
3.1 if语句
除了要学会if的用法,还要学习配合使用else if和else语句,它们可以配合if完成对其他情况的处理。if语句是最常用的条件判断语句,它根据一个布尔表达式的计算结果来选择要执行的语句,当表达式的结果为true时执行一个操作,为false时则执行另一个操作,如图7-4所示。
语法如下:
下面,我们通过代码进行说明:
using System;
namespace ProgrammingCSharp4
{
public class StatementSample
{
static void Main()
{
int x = 10;
if (x > 5)
{
Console.WriteLine("x值大于5!");
}
}
}
}
如果要解决的问题比较简单,只有一种条件需要判断,那么只需要使用if语句就已足够。但是,问题往往不会这么简单,比如我们买房,不同的楼盘价格不同,不同的楼层价格也不同,如果要写一段程序帮助准用户计算购房价格,就要对各种情况进行处理,即需要根据多个条件进行判断,单纯的一个if已经不够了,这时可以扩展if语句,使用多个else-if来处理多个条件。
其流程如图7-5所示。
语法如下:
if......else if语句的代码示例我们通过代码清单7-1进行介绍,另外,在代码清单7-1中还要对if语句和else if语句的用法进行对比,通过对两段程序的运行结果进行分析,希望以此来告知大家在对多个条件进行判断的时候,如何正确地使用if和else if。对于需要判断多个条件的情况,有两种选择:
使用多个if
使用else if排列
下面的代码示例对此进行分析,如代码清单7-1和代码清单7-2所示:
代码清单7-1 使用else if排列
using System;
namespace ProgrammingCSharp4
{
public class StatementSample
{
static void Main()
{
int x = 30;
if (x > 5)
{
Console.WriteLine("x值大于5!");
}
else if (x > 10)
{
Console.WriteLine("x值大于10!");
}
else if (x > 20)
{