
4.6 转向结构
转向结构的语句是指在执行过程中通过指定语法形式跳转到指定位置的一种结构。该结构的语句多用于一些特殊地方。在C++语言中转向结构语句包括goto转向语句、break跳出语句及continue继续语句。本节将详细讲解这三种语句。
4.6.1 goto转向语句
goto转向语句用于跳转到指定位置,其语法形式如下。

goto转向语句由两部分组成。第一部分由goto和自定义表达式组成语句,表示跳转的开始位置;第二部分由自定义表达式与冒号组成,表示跳转的目标位置。
当代码运行到goto与表达式组成语句时,代码会直接跳转到自定义表达式的位置继续执行代码。goto转向语句流程图如图4.13所示。

图4.13 goto转向语句流程图
【示例4-14】下面实现在输出5个数后跳出循环输出游戏开始。


程序运行结果如下。

从运行结果中可以看出,当数字数到5以后程序直接跳出了for循环,跳转到“start:”目标位置,执行输出了“开始游戏”语句。
4.6.2 break跳出语句
break跳出语句可以实现跳出循环的功能。跳出循环是指跳出当前的循环语句范围,不再进行循环。break跳出语句流程图如图4.14所示。

图4.14 break跳出语句流程图
【示例4-15】下面输出最小能被11整除的数。


程序运行结果如下。

从运行结果中可以看出,在for循环运行过程中,当满足if的条件a%11 == 0后,会执行break;语句,此时程序跳出for循环,输出“能被11整除的最小数是11”语句。
4.6.3 continue继续语句
continue继续语句用于跳出当前循环。跳出当前循环是指跳出本次循环并尝试执行下一次循环。continue继续语句流程图如图4.15所示。

图4.15 continue继续语句流程图
【示例4-16】下面使用continue继续语句输出1~10的所有偶数。

程序运行结果如下。

从运行结果中可以看出,当a的值为奇数时,进入if语句执行continue语句,结束当前循环进入下一次循环,这样就不会执行输出语句“cout 〈〈 a 〈〈 endl;”;当a的值为偶数时,不会进入if语句,这样就会执行输出语句“cout 〈〈 a 〈〈 endl;”,输出偶数值。