C#提供了一些语句使得你可以在程序里进行跳转:goto语句,break语句,continue语句,return语句。
goto语句
goto语句允许你直接跳到任意行,只要它声明了一个标签(label,就是一个英文名称然后紧跟着一个:
):
goto Label1; Console.WriteLine("This won‘t be executed"); Label1: Console.WriteLine("Continuing execution from here");
注:上面编译会有个warning: warning CS0162: Unreachable code detected
goto语句有两个限制:
- 不能跳转到像for循环这样的代码块中;也不能跳出class的范围;
- 在try...catch的finally块里不能使用goto语句
goto语句是万恶的,大多数情况下都是默认不允许使用的。
break语句
用来跳出switch的case,也可以用于跳出像for,foreach,while和do...while这样的循环体。
如果你在嵌套循环里使用了break,它仅仅会跳出它所在的那一层循环体,外部循环依然可以正常使用。
如果你在switch或者循环体外使用break,系统会直接提示一个编译错误:"没有要中断或继续的封闭循环"。
continue语句
continue语句类似于break语句,但只能在for,foreach,while和do...while这样的循环体中使用。
它只退出循环的当前迭代,开始执行循环的下一次迭代,而不是退出循环。
return 语句
return语句用于退出方法,把控制权返回给方法的调用者。
如果方法有返回类型,return语句必须返回该类型的值。
而如果方法声明为void,则不需要返回任何值,仅仅书写一个return即可。