流程控制(详解foreach)
一般情况下,程序中的代码按其出现的顺序依次执行,这称为“顺序执行”。若要改变代码的执行流程,就要使用到控制结构。C#中的流程控制结构包括选择结构、循环结构、和跳转结构。
选择控制语句
If、if/else选择结构
switch/case
循环控制语句
循环控制while、do…while、for
跳转控制语句
break、continue
选择控制语句
If-else选择
语法:
If(<条件1>)
{
<语句块1>
}
Else if(<条件2>)
{
<语句块2>
}
……
Else
{
<语句块n>
}
Switch选择
C#语言的另一种多选条件叙述是switch多条件叙述,它是依照符合条件的特定值执行不同程序区块的程序代码。
语法:
Switch(选择变量)
{
Case 值1:
<语句块1>
Break;
Case 值2:
<语句块2>
Break;
……
Case 值n:
<语句块n>
Break;
Default:
<语句块>
Break;
}
switch/case 的其他特性
控制表达式switch的类型可以是整数类型、字符串类型等等,而各个case标签后的常量表达式的类型必须与控制表达式的类型相同,或者能够隐式的转换为控制表达式的类型。
case后面的表达式只能是常量,而不能是变量或表达式。
各个 case 标签不是连续的,也不必按特定顺序排列,但后面的常量表达式的值不能相等,每个case分支都必须以break语句结束。每个 case 标签中的语句数不限,但是语句中的任何代码都不能修改控制表达式的值。
default 标签可位于 switch…case 结构中的任意位置
default 标签不是必选的,但使用 default 标签是一个良好的编程习惯
循环控制语句
While循环
语法:
While(<条件>)
{
<语句块>
}
do…while循环
语法:
Do
{
<语句块>
}
While(<条件>);
do…while 循环与 while 循环类似,二者区别在于 do…while 循环中即使条件为假时也至少执行一次该循环体中的语句。
注意:其while子句之后要加上分号结束标记。
for循环
语法:
For(初始化;循环判断;循环迭代)
{
<语句块>
}
foreach循环
语法
foreach(变量类型 变量名称 in 集合)
{
语句块
}
能用foreach遍历的前提:凡是具有GetEnumerator()方法的类型才可以使用foreach变量。
注意:1.foreach循环中不允许修改集合的元素。2.其实通过foreach遍历数据,实际上是调用了一个“枚举器”来遍历数据,和foreach一点关系都没有,foreach只是一个语法上的简化而已。使用foreach语句主要就是降低了枚举的复杂度。
foreach实例.rar:https://files.cnblogs.com/zyu19890106/foreach%E5%AE%9E%E4%BE%8B.rar
跳转控制语句
Break语句
跳转语句能够无条件的改变程序的控制权。
break语句用于跳出当前的代码段,它适用while、do-while、for、foreach循环结构,以及选择结构中的switch语句。在执行到break语句是,程序控制权将转移到这些控制语句的结束点。
Continue语句
使用continue语句能够跳出while、do-while、for和foreach循环语句,并将控制权转移到这些语句的开始点,也就是说continue语句只能跳过当前循环中尚未执行的代码,并继续下一次循环。
Return语句
1.return语句用于方法的返回,将控制权转移给方法的调用程序,但return语句要求后跟与方法返回类型相同的表达式。
2.程序主方法Main()中的return语句表示整个应用程序的退出点。如果方法返回类型为void,则可以使用不带表达式的return语句,return语句将终止当前执行的方法,后续的所有代码都不会被执行,即退出整个方法。
Goto语句
goto语句用于程序指令的无条件跳转。使用goto语句时需要在程序中预先声明一个标号,并在goto关键字后面指定该标号,从而将控制权转移给标号之后的语句。