开发者要充分应用任何一种语言必须全面而彻底地了解其代码流程结构在本文中我将概括说明C#控制语句并讨论应用每种语句的适当方法
选择语句
If和switch被称之为选择语句是因为它们能够根据实际情形决定逻辑路径代码下面介绍这两个语句
if语句
这个语句中包含一个求布尔值的表达式如果布尔表达式的值为真即执行if子句中的语句如果布尔值为假则不执行if子句中的语句
if语句后面可以紧跟一个else语句如果if子句中的布尔表达式的值为假则执行else语句else语句还可以与if语句组合使用那时它的执行方式与普通的if语句相似但是只有当第一个if子句的布尔表达式值为假且这个else if子句值为真时才执行这段代码
一般来讲为了保证代码的各种情形得到处理且不会出现程序逻辑漏洞最好使用else语句
注当应用if语句检查等同性时必须使用两个连续的等号两个等号检查等同性而一个等号仅表示赋值
下面是if语句的一个应用实例
int i=;
if (i == )
{MessageBoxShow(i=); }
elseif (i==)
{MessageBoxShow(i=); }
else
{ MessageBoxShow(i=?); }
switch语句
这个语句求一个表达式的值并将这个值与许多case进行比较每个case与一个叫做switch块的语句列表关联C#执行一个与switch块关联的语句块这个switch块与表达式的值进行匹配当你试图求某个特殊表达式的值时switch是一种易于理解的编程方法其中包含许多if/else语句对
用做switch语句驱动器的表达式包含在括号内后面是switch关键字一般来说switch语句表达式的值必须为下列类型中的一种sbytebyteshortushortintuintlongulongcharstring你也可能使用一个能够隐性转换成上述值类型的表达式
switch块以关键字case开始后面是一个常量表达式常量表达式后面是一个冒号冒号后是语句列表break则结束语句块
C#首先求switch语句中的表达式的值然后它寻找一个switch块将这个块的表达式与前面表达式的值进行匹配如果它能够在这些switch块中找到一个匹配的值即执行switch块的语句列表
如果没有case与switch块的常量值相匹配switch块中的默认关键字就执行一段特殊的代码
通常为了保证代码的各种情形得到处理且不会出现程序逻辑漏洞最好使用默认关键字
下面是switch语句的一个应用实例
int i=;
switch (i)
{
case :
MessageBoxShow(i=);
break;
case :
MessageBoxShow(i=);
break;
default:
MessageBoxShow(i=?);
break;
}
循环语句
因为whiledofor和foreach能够重复多次执行嵌套语句所以把它们归为循环语句以下是这四个语句的介绍
while语句
当一个表达式的值为真时这个语句执行一个语句列表控制while语句的布尔表达式包含在括号内前面是while关键字括号后面是当布尔表达式值为真时应执行的语句
下面是while语句的一个应用实例
int i=;
while (i < )
{
MessageBoxShow(iToString());
i++;
}
do语句
这个语句执行其嵌套语句零次或多次如果while语句中的布尔表达式值为假则不执行任何嵌套语句但是为了保证嵌套语句至少执行一次可以使用一个do语句
do语句后面是一个嵌套语句后面紧跟着一个while关键字控制循环执行次数的布尔表达式位于while关键字的后面由于布尔表达式在嵌套语句执行后再求值因此嵌套语句至少被执行一次
以下为do语句的一个应用实例
int i=;
do
{
MessageBoxShow(iToString());
i++;
}
while (i < );
for语句
这个语句以for关键字开始接着是括号括号内是一个初始化器一个条件下和一个迭代语句它们全都以分号隔开嵌套语句在括号后面
以下是for语句的一个应用实例
for (int i=; i<; i++)
{
MessageBoxShow(iToString());
}
}
foreach语句
这个语句用来循环一个集合中的元素由于C#中的数组支持foreach语句因此你可以应用foreach语句处理数组中的每一个元素
使用foreach语句时首先输入foreach关键字然后是括号括号内必须包含以下信息集合中元素的类型集合中元素的标识符名称关键字in和集合的标识符嵌套语句在括号之后
下面是foreach语句的一个应用实例
int[] intArray;
intArray = newint[];
intArray[] = ;
intArray[] = ;
intArray[] = ;
foreach (int ArrayElement in intArray)
MessageBoxShow(ArrayElementToString());
跳跃语句
由于breakcontinue和goto语句有助于跳跃到代码中的某个特定语句因此它们属于跳跃语句下面是这三个语句的介绍
break语句
这个语句常与switch语句联合使用但是C#允许你使用它跳出当前语句块我们经常用break语句跳出一个循环语句块
下面是break语句的一个应用实例
int i = ;
while (i < )
{
MessageBoxShow(iToString());
if (i == )
break;
i++;
}
continue语句
这个语句将控制返回到控制循环语句的布尔表达式
下面是continue语句的一个应用实例
for (inti = ; i <= ; i++)
{
if (i < )
{
continue;
}
MessageBoxShow (i);
}
goto语句
这个语句把控制无条件交给一个标记语句在C#中任何语句都可以被标记语句标记后紧跟一个冒号一个标记标识符然后是goto关键字goto语句把控制交给由标记标识符命名的语句
如果过度使用goto语句编写出来的代码可能难以阅读与理解通常最好对代码进行改写避免使用goto语句
下面是goto语句的一个应用实例
int i = ;
while (i < )
{
MessageBoxShow(iToString());
if (i == )
goto Complete;
i++;
}
Complete: MessageBoxShow(complete);
补充信息
本文介绍了C#中代码/流程语句的基本信息欲了解应用每个语句的详细信息请访问微软网站获知选择循环和跳跃语句的详细内容
Irina Medvinskaya自年开始涉足技术领域她获得佩斯大学的MBA学位现在任花旗集团的项目经理