![21天学通C++(第5版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/312/31186312/b_31186312.jpg)
4.4 转向语句
转向语句是C++中用来实现无条件转移的语句。常用的转向语句有如下4种。
![](https://epubservercos.yuewen.com/E623DA/16896237004359006/epubprivate/OEBPS/Images/txt005_71.jpg?sign=1738826137-8q4KC0wifCAgAZxJ4rUg6KCgxRkL3UY4-0-a0e53904f7ceb6c3f67bff64af3a1f45)
●break语句:break语句又称跳出语句,用来结束循环结构,然后执行循环体后面的语句,其说明语句的一般形式为:
![](https://epubservercos.yuewen.com/E623DA/16896237004359006/epubprivate/OEBPS/Images/txt005_72.jpg?sign=1738826137-rr2YWGpvwXUAVBZiOgasswBHeMY8mAwg-0-cfa8ef4b69b0bb5d5a6196dcef209f27)
break语句也可以作为switch语句的出口,用于退出case语句。
●continue语句:continue语句又称继续语句,可用来跳出本次循环而进入下一次循环,其说明语句的一般形式如下:continue;
continue语句与break语句的主要区别是,continue语句是根据条件判断只结束本次循环,不结束整个循环结构;而break语句不进行判断,结束整个循环结构,然后执行循环体后面的语句。
●goto语句:goto语句又称转向语句,用来将程序无条件跳转到指定的标号语句处,其说明语句的一般形式如下:goto<标号>;
其中标号是一个标识符,放在语句的最前面,其说明语句的一般形式为:
![](https://epubservercos.yuewen.com/E623DA/16896237004359006/epubprivate/OEBPS/Images/txt005_73.jpg?sign=1738826137-zCbo2lmaX0ka7aE04inGpG4sphx5iV1T-0-6c30a98749651797c967d8a1b1cba82a)
注意
使用goto语句将使程序结构不清晰,可读性低。一般来说,在结构化程序设计中应尽量少用或不用goto语句。
●return语句:return语句又称返回语句,可用来停止执行当前函数,转而执行调用该函数后面的语句,其说明语句的一般形式如下:
![](https://epubservercos.yuewen.com/E623DA/16896237004359006/epubprivate/OEBPS/Images/txt005_74.jpg?sign=1738826137-R3lxpqX7TSVzYs6C3QmWE6qKPV3ZuM1h-0-49443fd4573ff74335a5ed18721087f1)
表达式可以是任何类型的变量,也可以是void型。需要注意的是,所返回表达式的类型必须与函数的类型一致。
【范例4-18】转向语句的应用。该范例求出100以内的所有素数。所谓素数是指大于2且只能被1或本身整除的整数。判断素数的算法为:对于i,只要其能够被2~i-1中任一个数整除,则i不是素数。其实现代码如代码清单4-18所示。
代码清单4-18
![](https://epubservercos.yuewen.com/E623DA/16896237004359006/epubprivate/OEBPS/Images/txt005_75.jpg?sign=1738826137-oDF5tz8TI4PftDGIW5cFRG0CB2EQuuSV-0-be0f2a79b39b1e3f9901a972810af633)
【运行结果】在Visual C++ 6.0中执行上述代码,执行结果如图4-25所示。
![](https://epubservercos.yuewen.com/E623DA/16896237004359006/epubprivate/OEBPS/Images/txt005_76.jpg?sign=1738826137-wN2S6oGzOJ9xIBdu7WgEeXVoglpmXXRy-0-cb8d7d05e8afbf828bc6747b2d462785)
图4-25 求素数
【范例解析】在范例4-18的程序代码中,使用了两重循环,前一个循环用于取2~100内的所有数字,后一个循环用于判断取到的数值是否是素数。