5.5 跳转语句
共有 4 种跳转语句:break
、continue
、goto
、return
。
5.5.1 break 语句
负责终止离它最近的 while、do while、for 或者 switch 语句,并从这些语句之后的第一条语句开始继续执行。
break
语句只能出现在迭代语句或者 switch 语句内部,作用范围仅限于最近的循环或者 switch。
5.5.2 continue 语句
终止最近的循环中的当前迭代并立即开始下一次迭代。
只能出现在 for、while、do while 循环的内部,或者嵌套在此类循环的语句或块内部。
string buf;
while (cin >> buf && !buf.empty()) {
if (buf[0] == '_')
continue; // 接着读取下一个输入
// 程序执行过程到了这里?说明当前的输入是以下划线开始的,接着处理 buf
}
5.5.3 goto 语句
goto 语句的作用是从 goto 语句无条件跳转到同一函数内的另一条语句。语法形式为:
goto label;
label
是用于标识一条语句的标示符。带标签语句(label statement)是一种特殊的语句,在它之前有一个标示符以及一个冒号
end: return; // 带标签语句,可以作为 goto 的目标
标签标示符独立于变量或者其他标示符的名字,因此,标签标示符可以和程序中其他实体的标示符使用同一个名字而不会相互干扰。
goto 语句和控制权转向的那条带标签的语句必须位于同一个函数之内。