一、break语句
在编写循环代码时,有时需要在某些条件下跳出循环,这时可以使用break语句。break语句可用于for、while和do-while循环。
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // 当 i = 5 时跳出循环
}
std::cout << i << std::endl;
}
上面的代码中,循环从0开始,当i等于5时跳出循环。执行上述代码,控制台将输出0到4这五个数字。
二、continue语句
continue语句用于跳过当前循环中的某一次迭代,直接进行下一次循环。continue语句同样可用于for、while和do-while循环。
for (int i = 0; i < 10; i++) {
if (i == 5) {
continue; // 当 i = 5 时跳过第5次循环
}
std::cout << i << std::endl;
}
上面的代码中,循环从0开始,当i等于5时跳过第5次循环。执行上述代码,控制台将输出0到9这十个数字,但不包括数字5。
三、return语句
在函数中使用return语句可以退出函数并返回一个值。当函数自身的递归或在一个循环中使用return时,可以达到跳出循环的目的。
int recursiveFunction(int n) {
if (n == 0) {
return 0; // 递归终止条件,返回0
}
return n + recursiveFunction(n - 1); // 递归调用
}
上面的代码是一个递归函数示例,当n等于0时,递归停止并返回值0。在递归调用时,每次将n减1,直到n等于0。函数返回的值是n加n-1加n-2+···+3+2+1的和。
四、throw语句
throw语句可用于抛出异常,当程序执行到throw语句时,将会跳出当前函数或代码块,并抛出异常,执行异常处理程序。
try {
// 一些可能抛出异常的代码
if (somethingWrong) {
throw "something is wrong"; // 抛出异常
}
}
catch (const char* msg) {
// 处理异常
std::cout << "Exception caught: " << msg << std::endl;
}
上面的代码中,try块内是一些可能抛出异常的代码。当somethingWrong满足某些条件时,将会抛出一个指定的异常。catch块内处理这个异常,可以输出异常信息到控制台上。
五、goto语句
goto语句允许跳转到程序中的另一个标签处。虽然goto语句有时会使程序结构变得混乱,但在某些情况下,例如在遇到错误时,使用goto语句有时是有用的。
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 5; j++) {
if (i == 3 && j == 2) {
goto end_loop; // 跳到end_loop标签处
}
}
}
end_loop:
std::cout << "End of loop" << std::endl;
上面的代码中,有两重循环,当i等于3并且j等于2时,使用goto语句直接跳到标签处,即end_loop处。跳到标签处之后,程序将跳过循环,执行输出”End of loop”。