
3.1 语句概述
语句是日常生活中不可缺少的,人们通过语句相互交流,以达到目的。程序中的语句是人与计算机的交互,人们通过语句向计算机发出命令或数据信息,以实现某种功能。
计算机语句与人类语句不同,计算机语句命令性强,一条语句就是一条命令,用来指示计算机运行。语句是程序的构成组件,计算机的所有操作都是根据语句命令来执行的。
目前常用的高级编程语言,如C#和Java,其语句分类和语法格式相差不大,有过其他高级语言编程基础的读者在学习本章内容时,只需要了解各语言间的差别即可。
3.1.1 语句分类
语句是程序的基本组成,语句又分为多种,包括基本语句、空语句、声明语句、选择语句、循环语句和跳转语句等。
程序由一条条的语句构成,默认情况下,这些语句是顺序执行的。但顺行执行的语句使用范围有限,满足不了程序需求,因此C#将语句分为多种。除了顺序执行的语句外,C#中的程序执行语句分为以下几种。
□ 选择语句包括:if、else、switch、case。
□ 循环(迭代)语句包括:do、for、foreach、in、while。
□ 跳转语句包括:break、continue、default、goto、return、yield。
□ 异常处理语句包括:throw、try catch、try finally、try catch finally。
□ 检查和未检查语句包括:checked、unchecked。
□ Fixed语句包括:fixed。
□ Lock语句包括:lock。
选择语句可根据不同条件选择需要执行的下一条语句。循环语句可重复执行相同语句。跳转语句常与选择语句和循环语句结合使用,用于中断目前执行顺序,并执行指定位置的语句。异常处理语句用于异常的处理,程序运行中常会出现意想不到的错误或漏洞,为了防止这些异常影响系统,可使用异常处理语句来处理。检查和未检查语句用于指定C#语句的执行的上下文,C#语句既可以在已检查的上下文中执行,也可以在未检查的上下文中执行。fixed语句禁止垃圾回收器重定位可移动的变量。lock关键字将语句块标记为临界区。
除了执行顺序上的分类,C#程序语句在功能上还有其他几种类型:空语句、声明语句、赋值语句和返回值语句等。
3.1.2 基本语句
没有特别说明的语句都按顺序执行,无论语句如何执行,语句结构和语法是固定的。
语句是程序指令,一条语句相当于一条命令,命令语句以分号结尾。命令语句可大可小,长语句可以写在多个代码行上,两行之间不需要连接符,用分号结尾;而一个单纯的分号即可构成一个短语句。
分号是语句不可缺少的结尾;语句与分号之间不能有空格,语句与语句之间用分号隔开,语句之间可以有空格和换行。例如,声明一个整型变量num,语句如下所示:
int num;
简单的两个单词、一个空格和一个分号,就构成了一条声明语句。这条语句用来通知计算机准备一个位置给int型的变量num。
最简单的语句是空语句,只有一个分号,不执行任何操作。如下所示:
int num; num=3; ;
执行一个空语句就是将控制转到该语句的结束点。这样,如果空语句是可到达的,则空语句的结束点也是可到达的。
3.1.3 语句块
程序中的语句单独为命令,但一个功能常常需要多条语句顺序执行才能实现。C#中允许将多条语句放在一起,作为语句块存在。
语句块是语句的集合,将多条语句写在一个{}内,作为一个整体参与程序执行。
例如,定义一个变量price描述单价,定义一个变量num描述数量,则描述总价的变量total的值为price与num的乘积。语句如下:
{ int price = 12; int num = 10; int total; total = price * num; }
上述语句中的单条语句都是命令,但都是计算过程的一部分,分开来没有意义,多条语句描述了总价的计算过程,因此可将这些语句作为一个语句块存在。
语句块后不用加分号,常与选择语句关键字或循环语句关键字结合,用于表示参与选择或循环的语句。