chensen 2009-09-04
本文向大家介绍C#流程控制语句,可能好多人还不了解C#流程控制语句,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。
C#流程控制语句
在这两种语言中,C#流程控制语句是非常相似的,但是这一部分也会讨论它们的一些细微差别。
1.分支语句
分支语句根据特定的条件改变运行时程序执行的流程。
2.if、else 和 else if
这些在两种语言中是一样的。
3.switch 语句
在两种语言中,switch 语句都提供条件多分支操作。但是有点不同的是,Java 允许您“越过”一个 case 并执行下一个 case,除非您在 case 的末尾使用了 break 语句。然而,C# 需要在每个 case 的末尾都使用 break 或 goto 语句,如果两者都不存在,则编译器会产生下列错误:
Control cannot fall through from one case label to another.
不过请注意,在没有指定要执行的代码的地方,当 case 匹配时,控制会越过随后的 case。当在 switch 语句中使用 goto 时,我们只能跳至同一 switch 中的另一个 case 块。如果我们想要跳至 default case,我们可以使用“goto default;”,否则,我们需要使用“goto case cond;”,其中 cond 是我们希望跳至的 case 的匹配条件。Java 的 switch 语句的另一个不同之处在于,在 Java 中,我们只能对整数类型使用 switch 语句,而 C# 允许我们对字符串变量使用 switch 语句。
例如,下面的程序在 C# 中是合法的,但在 Java 中却是不合法的:
switch (args[0]) { case "copy": ... break; case "move": ... goto case "delete"; break; case "del": case "remove": case "delete": ... break; default: ... break; }
4.goto 的返回
在 Java 中,goto 是一个没有实现的保留关键字。然而,我们可以使用带有 break 或 continue 标签的语句来达到与 goto 相似的目的。
C# 允许 goto 语句跳至带有标签的语句。不过请注意,为了跳至一个特定的标签,goto 语句必须在该标签的范围内。换句话说,goto 不可用来跳进一个语句块(不过,它可以跳出一个语句块)、跳出一个类,或退出 try...catch 语句中的 finally 块。不过请注意,在大多数情况下,我们都不鼓励您使用 goto,因为它违反了面向对象编程的良好实践。
5.循环语句
循环语句重复指定的代码块,直到满足给定的条件为止。
1).for 循环
在两种语言中,for 循环的语法和操作均相同:
for (initialization; condition; expression) statement;
2).foreach 循环
C# 引入了一种新的循环类型,称为 foreach 循环(类似于 Visual Basic 的 For Each)。foreach 循环允许遍历支持 IEnumerable 接口的容器类中的每一项(例如:数组)。下面的代码说明了如何使用 foreach 语句来输出一个数组的内容:
public static void Main() { int[] arr1= new int[] {1,2,3,4,5,6}; foreach ( int i in arr1) { Console.WriteLine("Value is {0}", i); } }
在 C# 中的数组部分,我们将更详细地介绍 C# 中的数组。
3).while 和 do...while 循环
在两种语言中,while 和 do...while 语句的语法和操作均相同: