前妻(C#)-流控制
流控制
和大多数语言一样C#也有控制程序流的语句,它们不是按代码在程序中的排列位置顺序执行的
1.条件语句
条件语句可以根据条件是否满座或根据表达式的值控制代码的执行分支。C#有两个控制代码的分支的结构;if语句,测试特定条件是否满足;switch 语句,它比较表达式和多个不同的值。
if条件语句代码如下,需要注意的是在c#中,If子句中的表达式必须等于布尔值。不能直接测试整数(如从函数中返回的值),而必须明确地把返回的真实转换成布尔值。
if(xxx){
}else if(Xxx){
}else{
}
switch条件语句代码如下,需要注意的是case的值必须是常量表达式:不允许使用变量。C#禁止几乎所有的case中的失败条件。如果激活了块中靠前的一条case子句,后面的case子句就不会被激活,除非使用goto语句特别标记也要激活后面的case子句。编译器会把没有break语句的case子句标记为错误。
switch(xxx){
case a1:
xxxx;
break;
case a2:
xxxx;
break;
default:
xxxx;
break;
}
2.循环语句
C#提供了4种不同的循环机制(for,while,do…while和foreach)在满足某个条件之前,可以重复执行代码块。
for循环代码如下,在循环开始之前知道自己要循环多少次
for(int i=0;i<10;i++){
}
while循环,与for循环一样是预测试循环,与for循环不同的是,while循环最常用于以下情况;在循环开始前,不知道重复执行一个语句或语句块的次数。通常在,某次迭代中,while循环体重的语句把布尔标志设置为false,结束循环
while(xxx){
}
do…while循环代码如下,do…while循环是while循环的后测试版本。该循环的测试了解要在执行完循环体之后执行。因此do…while循环适用于至少要将循环体执行一次的情况。
do{
}while(XXX)
foreach 循环代码如下,可以迭代集合中的每一项
foreach (int temp in xxx){
}
3.跳转语句
C#提供了很多可以立即跳转到程序中另一行的代码语句
goto语句,该语句可以直接跳转到程序中用标签指定的另一行。goto语句有两个限制。不能跳转到像for循环这样的代码块中,也不能跳出类的范围,不能跳出try…catch后的finnary块。(一般很少使用这个语句 代码如下)
goto 代码块名;
xxxxx
代码块名:
xxxx1
break语句。break语句用于退出for,foreach,while或do…while循环,该语句会使控制流执行循环后面的语句。如果该语句放在嵌套的循环中,就要执行最内部循环后面的语句。如果break放在switch语句或循环外部,就会产生编译错误。
continue语句。类似于break,也必须在for,foreach,while,或do…while循环中使用。但它只退出当前循环的迭代,开始执行循环的下一次迭代,而不是退出循环。
return语句。用于退出类的方法,把控制权返回方法的调用者。如果该方法有返回类型,return语句必须返回这个类型的值。如果方法返回viod,应返回没有表达式的return语句。