- C# 从入门到项目实践(超值版)
- 聚慕课教育研发中心
- 1716字
- 2021-03-24 02:36:18
5.5 跳转语句
C#中还有一种结构,可以使程序在执行过程中跳转到指定位置,将其称为跳转语句。跳转可以更改执行的正常序列。当执行离开一个范围时,所有在该范围中创建的自动对象都会被销毁。C#提供的跳转语句有break语句、continue语句和return语句。本节将对其进行详细介绍。
5.5.1 break跳转语句
C#中break语句有以下两种用法:
(1)当break语句用于do…while、for、while等循环语句中时,可使程序终止循环而执行循环后面的语句。通常break语句总是与if语句连在一起,即满足条件时便跳出循环。
(2)它可用于终止switch语句中的一个case。
如果用户使用的是嵌套循环,break语句会停止执行最内层的循环,然后开始执行该块之后的下一行代码。
break语句的语法格式如下:
break;
【例5-14】编写程序,使用break语句终止循环。
(1)在Visual Studio 2017中,新建名称为“Project14”的文件。
(2)在代码编辑区域输入以下代码。
【程序分析】本例演示了break语句的使用。在代码中,首先定义int型变量x,并赋值为1;然后使用while循环遍历1~100,其中通过if语句判定如果数值遍历到5,则跳出循环。本例的流程如图5-22所示。
在Visual Studio 2017中的运行结果如图5-23所示。
图5-22 break语句的流程图
图5-23 break语句
5.5.2 continue跳转语句
C#中的continue语句有点像break语句,但它不是强迫终止。continue会跳过当前循环中的代码,强迫开始下一次循环。
对于for循环,continue语句会导致执行条件测试和循环增量部分。对于while和do…while循环,continue语句会导致程序控制回到条件测试上。通常情况下,continue语句总是与if语句连在一起,用来加速循环。
continue语句的语法格式如下:
continue;
【例5-15】编写程序,输出10~30所有不能被3和7同时整除的整数。
(1)在Visual Studio 2017中,新建名称为“Project15”的文件。
(2)在代码编辑区域输入以下代码。
【程序分析】本例演示了continue语句的使用。在代码中首先定义两个变量i和n,变量i作为循环变量,变量n用于计数。只有当i的值能同时被3和7整除时,才执行continue语句,执行后越过后面的语句,直接判断循环条件i<=30,再进行下一次循环。本例的流程如图5-24所示。
在Visual Studio 2017中的运行结果如图5-25所示。
图5-24 continue语句的流程图
图5-25 continue语句
5.5.3 return跳转语句
return语句就是用于指定函数返回的值。return语句只能出现在函数体内,出现在代码中的其他任何地方都会造成语法错误。
return语句后面可以是常量、变量、表达式、方法,也可以什么都不加。一个方法中也可以出现多条return语句,但只有一条会执行。当return语句后面什么都不加时,返回的类型为void。
例如:
【例5-16】编写程序,返回一个方法的值。
(1)在Visual Studio 2017中,新建名称为“Project16”的文件。
(2)在代码编辑区域输入以下代码。
【程序分析】本例演示了return语句的使用。在代码中首先定义两个变量r和result,变量r作为函数Area的参数,变量result用来接收来自Area函数的返回值。
在Visual Studio 2017中的运行结果如图5-26所示。
图5-26 return语句
5.5.4 goto语句
goto是跳转到的意思,它的作用是当程序执行到goto语句时,程序会直接跳转到标识符所标识的程序位置,继续执行代码。
goto语句的语法格式如下:
goto 标识符;
例如:
本段代码的意思是,首先定义了一个变量i,然后跳转到标签为tab的语句,接下来就输出i的结果。可以看出第三条语句是无意义的,因为没有被执行,而直接跳到了标签位置。所以最后输出的值是5,而不是100。
goto跳转的语句,并不是一定要跳转到之后的语句。也就是说,goto还可以跳到前面去执行。
例如:
本段代码的意思是,首先定义变量i,然后执行标签tab输出变量i的值,最后再跳转到标签tab输出变量。因为每次输出i以后,都又跳转回到标签tab,所以程序会不停地输出i。
【例5-17】编写程序,利用goto语句选择出6!的正确答案。
(1)在Visual Studio 2017中,新建名称为“Project17”的文件。
(2)在代码编辑区域输入以下代码。
【程序分析】本例演示了goto语句的使用。在代码中,首先定义一个整型变量a并初始化为0,该变量用于表示选项;接着,设置一个回答错误的标签,在错误标签的大括号里,先对变量a进行自加1,并对其进行判断;再定义一个变量option,用于表示用户输入的选项,并通过switch语句对其进行判断。由于6的阶乘等于720,所以用户输入1、2或3时,都会通过goto语句跳转到error标签,当选择4时,才会跳转到right标签。
在Visual Studio 2017中的运行结果如图5-27所示。
图5-27 goto语句
注意:goto语句的一个好处就是可以保证程序存在唯一的出口,避免了过于庞大的if嵌套。但是,在C#中还是建议少使用,因为它会使代码的易读性下降。