语句
和其他编程开发语言(如C 、C++ 等)一样,C# 语言也是由
各种各样的语句有序构建而成的。语句可以声明局部变
量或常量,调用方法,创建对象,将值赋予变量、属性
或字段等。一般地,语句以; (分号)终止。
和其他程序开发语言一样,C# 语言也提供了多种语句。C#
语言的语句可以分为以下3 个大类:
标记语句,给语句加上一个标签作为前缀。
声明语句,用来声明局部变量或常量
嵌入语句,能够嵌入到本身语句或其他语句中执行的语
句。
C# 语言包含多种常用的基本语句,如空语句、标记语句、
表达式语句、声明语句、块等。本节将详细介绍创建这
些语句的方法。
顾名思义,空语句(empty statement )不包括任何实际性语
句,它什么都不做。空语句的语法形式如下:
当在要求有语句的上下文中不执行任何操作时,使用空语句
标记语句(labeled statement )可以给语句加上一个标签作
为前缀,它可以出现在块中,但是不允许
表达式语句是C# 语言程序代码中最为常见的一种语句,它
用来计算所给定表达式的值,而且由该表达式计算的值
将被丢弃。实际上,表达式的值只是一个中间结果。表
达式语句包括以下7 类语句:
赋值表达式,如“i = 2008;” 等。
调用表达式,如“Count();” 等。
创建对象表达式,如“object o = new object();” 等。
前缀递减表达式,如“-- i” 等。
前缀递增表达式,如“++ i” 等。
后缀递减表达式,如“i --” 等。
后缀递增表达式,如“i ++” 等。
声明语句用来声明局部变量或常量,它可以出现在块
块(block )用于编写多条语句,并且可以将整个块看成一
个单个语句。块的语法形式如下:
{ statement-list }
statement-list 为一个语句列表,它是可选的。如果不存在
statement-list ,则称该块是空的。语句列表是由一个或多
个顺序编写的语句组成。
跳转语句(jump statement )用于无条件地转移程序的控制
,它包括以下5 种跳转语句:
break 语句,用于退出直接封闭它所在的switch (、while 、do 、for 或foreach语句。
break 语句用于退出直接封闭它所在的switch 、while 、do 、
for 或foreach 语句。它的语法形式如下:
break;
注意:break 语句只能用在switch 、while 、do 、for 或foreach
语句中,否则发生编译时错误。
如果break 语句位于多层嵌套的switch 、while 、do 、for 或
foreach 语句中,break 语句只能应用于最里层的语句。
continue 语句用于开始直接封闭它的while 、do 、for 或
foreach 语句的一次新迭代。它的语法形式如下:
continue;
注意:continue 语句只能用在while 、do 、for 或foreach 语句
中,否则发生编译时错误。
如果continue 语句位于多层嵌套的while 、do 、for 或foreach
语句中,continue 语句只能应用于最里层的语句。
return 语句一般用于函数成员的返回操作,即将控制返回到
函数成员的调用方。它的语法形式如下:
return expressionopt;
expressionopt 为返回值的表达式,它是一个可选表达式。
return 语句存在以下两种形式:
不带expressionopt 表达式的return 语句,只能用在返回类
型为void 的函数成员、属性的set 访问器(第8 章)、事件
的add 和remove 访问器(第8 章)、实例构造函数(第8 章
)、静态构造函数(第8 章)或析构函数(第8 章)中。
带expressionopt 表达式的return 语句,只能用在返回类型
不是void 的函数成员、属性的get 访问器(第8 章)。
expressionopt 表达式必须能够隐式转换为其所在函数成员
的返回类型。
throw 语句用来引发一个异常。它的语法形式如下:
throw expressionopt;
expressionopt 为返回值的表达式,它是一个可选表达式。和
return 语句一样,throw 语句也分为以下两种形式:
不带表达式的throw 语句,只能用在catch 块中
,它将重新引发当前正由该catch 块处理的那个异常。
带表达式的throw 语句,通过expressionopt 表达式产生异常
的值。而且,该异常的值的类型必须为System.Exception
类型或者从System.Exception 类派生的类型。
选择语句是指根据表达式的值从若干个给定的语句中选择一
个来执行的语句。选择语句包括if 语句和switch 语句。每
一个if 语句的选择支只有2 个,而每一个switch 语句的选择
支可以为1 个或多个。本节将详细介绍if 语句和switch 语句
。
if 语句能够根据布尔表达式的值选择要执行的语句,它存在
以下2 种语法形式。
if( 布尔表达式) 嵌入语句;
if( 布尔表达式) 嵌入语句1; else 嵌入语句2;
switch 语句比if 语句更加灵活,它可以存在1 个或多个可执行
的选择支。它的语法形式如下:
switch( 表达式)
{
case 常量表达式1: 语句块1;
case 常量表达式2: 语句块2;
…
default: 语句块n;
}
迭代语句是指可以重复执行嵌入语句的语句,包括for 语句
、foreach 语句、while 语句和do 语句。
for 语句首先计算一个初始化表达式序列,然后,当某个条
件为真时,重复执行相关的嵌入语句并计算一个迭代表
达式序列。for 语句的语法形式如下:
for ( 初始化表达式; 条件表达式; 迭代表达式) 嵌入语句;
foreach 语句用于枚举一个集合的元素,并对该集合中的每
个元素执行一次相关的嵌入语句。foreach 语句的语法形
式如下:
foreach ( 类型 迭代变量 in 表达式) ;
while 语句能够按照不同条件执行一个嵌入语句零次或多次
,它的语法形式如下:
while ( 布尔表达式);
do 语句和while 语句非常相似,它能够按照不同条件执行一
个嵌入语句一次或多次。它的语法形式如下:
do 嵌入语句 while ( 布尔表达式);
如果布尔表达式的值为true ,则执行嵌入语句。do 语句按照
如下规则执行,执行的流程图如下
和其他编程开发语言(如C 、C++ 等)一样,C# 语言也是由
各种各样的语句有序构建而成的。语句可以声明局部变
量或常量,调用方法,创建对象,将值赋予变量、属性
或字段等。一般地,语句以; (分号)终止。
语句概述
和其他程序开发语言一样,C# 语言也提供了多种语句。C#
语言的语句可以分为以下3 个大类:
标记语句,给语句加上一个标签作为前缀。
声明语句,用来声明局部变量或常量
嵌入语句,能够嵌入到本身语句或其他语句中执行的语
句。
基本语句
C# 语言包含多种常用的基本语句,如空语句、标记语句、
表达式语句、声明语句、块等。本节将详细介绍创建这
些语句的方法。
空语句
顾名思义,空语句(empty statement )不包括任何实际性语
句,它什么都不做。空语句的语法形式如下:
当在要求有语句的上下文中不执行任何操作时,使用空语句
标记语句
标记语句(labeled statement )可以给语句加上一个标签作
为前缀,它可以出现在块中,但是不允许
它们作为嵌入语句。标记语句的语法形式如下:
identifier : statement;
identifier 为标签的名称。在同一个块中,不能存在两个同名
的标签,否则会产生编译错误。statement 表示被标签标
记的语句。
identifier : statement;
identifier 为标签的名称。在同一个块中,不能存在两个同名
的标签,否则会产生编译错误。statement 表示被标签标
记的语句。
表达式语句
表达式语句是C# 语言程序代码中最为常见的一种语句,它
用来计算所给定表达式的值,而且由该表达式计算的值
将被丢弃。实际上,表达式的值只是一个中间结果。表
达式语句包括以下7 类语句:
赋值表达式,如“i = 2008;” 等。
调用表达式,如“Count();” 等。
创建对象表达式,如“object o = new object();” 等。
前缀递减表达式,如“-- i” 等。
前缀递增表达式,如“++ i” 等。
后缀递减表达式,如“i --” 等。
后缀递增表达式,如“i ++” 等。
声明语句
声明语句用来声明局部变量或常量,它可以出现在块
中,但不允许它们作为嵌入语句使用。声明语
句包括声明局部变量语句和声明局部常量语句。声明局
部变量语句用来声明一个局部变量。
句包括声明局部变量语句和声明局部常量语句。声明局
部变量语句用来声明一个局部变量。
块
块(block )用于编写多条语句,并且可以将整个块看成一
个单个语句。块的语法形式如下:
{ statement-list }
statement-list 为一个语句列表,它是可选的。如果不存在
statement-list ,则称该块是空的。语句列表是由一个或多
个顺序编写的语句组成。
跳转语句
跳转语句(jump statement )用于无条件地转移程序的控制
,它包括以下5 种跳转语句:
break 语句,用于退出直接封闭它所在的switch (、while 、do 、for 或foreach语句。
continue 语句,用于开始直接封闭它的while 、do 、for 或foreach 语句的一次新循环。
return 语句,一般用于函数成员的返回操作,即将控制返回到函数成员的调用方。
throw 语句,用于产生一个异常。
goto 语句,跳转到指定的标签位置。
return 语句,一般用于函数成员的返回操作,即将控制返回到函数成员的调用方。
throw 语句,用于产生一个异常。
goto 语句,跳转到指定的标签位置。
break 语句
break 语句用于退出直接封闭它所在的switch 、while 、do 、
for 或foreach 语句。它的语法形式如下:
break;
注意:break 语句只能用在switch 、while 、do 、for 或foreach
语句中,否则发生编译时错误。
如果break 语句位于多层嵌套的switch 、while 、do 、for 或
foreach 语句中,break 语句只能应用于最里层的语句。
continue 语句
continue 语句用于开始直接封闭它的while 、do 、for 或
foreach 语句的一次新迭代。它的语法形式如下:
continue;
注意:continue 语句只能用在while 、do 、for 或foreach 语句
中,否则发生编译时错误。
如果continue 语句位于多层嵌套的while 、do 、for 或foreach
语句中,continue 语句只能应用于最里层的语句。
return 语句
return 语句一般用于函数成员的返回操作,即将控制返回到
函数成员的调用方。它的语法形式如下:
return expressionopt;
expressionopt 为返回值的表达式,它是一个可选表达式。
return 语句存在以下两种形式:
不带expressionopt 表达式的return 语句,只能用在返回类
型为void 的函数成员、属性的set 访问器(第8 章)、事件
的add 和remove 访问器(第8 章)、实例构造函数(第8 章
)、静态构造函数(第8 章)或析构函数(第8 章)中。
带expressionopt 表达式的return 语句,只能用在返回类型
不是void 的函数成员、属性的get 访问器(第8 章)。
expressionopt 表达式必须能够隐式转换为其所在函数成员
的返回类型。
throw 语句
throw 语句用来引发一个异常。它的语法形式如下:
throw expressionopt;
expressionopt 为返回值的表达式,它是一个可选表达式。和
return 语句一样,throw 语句也分为以下两种形式:
不带表达式的throw 语句,只能用在catch 块中
,它将重新引发当前正由该catch 块处理的那个异常。
带表达式的throw 语句,通过expressionopt 表达式产生异常
的值。而且,该异常的值的类型必须为System.Exception
类型或者从System.Exception 类派生的类型。
选择语句
选择语句是指根据表达式的值从若干个给定的语句中选择一
个来执行的语句。选择语句包括if 语句和switch 语句。每
一个if 语句的选择支只有2 个,而每一个switch 语句的选择
支可以为1 个或多个。本节将详细介绍if 语句和switch 语句
。
if 语句
if 语句能够根据布尔表达式的值选择要执行的语句,它存在
以下2 种语法形式。
if( 布尔表达式) 嵌入语句;
if( 布尔表达式) 嵌入语句1; else 嵌入语句2;
switch 语句
switch 语句比if 语句更加灵活,它可以存在1 个或多个可执行
的选择支。它的语法形式如下:
switch( 表达式)
{
case 常量表达式1: 语句块1;
case 常量表达式2: 语句块2;
…
default: 语句块n;
}
迭代语句
迭代语句是指可以重复执行嵌入语句的语句,包括for 语句
、foreach 语句、while 语句和do 语句。
for 语句
for 语句首先计算一个初始化表达式序列,然后,当某个条
件为真时,重复执行相关的嵌入语句并计算一个迭代表
达式序列。for 语句的语法形式如下:
for ( 初始化表达式; 条件表达式; 迭代表达式) 嵌入语句;
foreach 语句
foreach 语句用于枚举一个集合的元素,并对该集合中的每
个元素执行一次相关的嵌入语句。foreach 语句的语法形
式如下:
foreach ( 类型 迭代变量 in 表达式) ;
while 语句
while 语句能够按照不同条件执行一个嵌入语句零次或多次
,它的语法形式如下:
while ( 布尔表达式);
do 语句
do 语句和while 语句非常相似,它能够按照不同条件执行一
个嵌入语句一次或多次。它的语法形式如下:
do 嵌入语句 while ( 布尔表达式);
如果布尔表达式的值为true ,则执行嵌入语句。do 语句按照
如下规则执行,执行的流程图如下