本文 我们来说 控制流程的跳转语句
C语言 提供三种 控制流程的跳转语句
1. break 语句
我们之前讲 switch 时 大家已经看到过这个 break 了 作用是跳出当前 switch
在循环中 它的作用也差不多
这里 我们举个生活中的例子 例如 我们在操场上跑步
计划跑十圈 但是 还没跑完 我们感到了身体不适,就需要提前退场 不跑了 但其实并没有跑完
代码逻辑 举例如下图
我们开启一个计数循环 跑十圈 但 如果判断到身体不适 我们就需要 break 终止循环
break 的作用就是强制跳出当前循环
然后 又如 小红 想让妈妈买糖
如果不买 小红就哭到妈妈买 循环逻辑就是哭
但是 妈妈一直不买 条件没达到 但是小红哭累了 提前break结束循环
如下图
这里 我们做个代码小案例
#define _CRT_SECURE_NO_WARNINGS//禁用安全函数警告
#pragma warning(disable:6031)//禁用 6031 的安全警告
#include <stdio.h>int main() {for (int i = 1;i <= 10;i = i + 1) {printf("i的值为 %d\n", i);if (i == 5) {break;}}
}
按逻辑走 循环应该执行 10次
但是 我们判断 到第五次 就会 break
运行代码
到 第五次 就被迫停止了
2.continue 语句
continue 语句和break语句一样,也可用于对循环进行内部控制,起到条件跳转的作用,但二者对流程的控制效果是不同的。
例如 我们这样写
#define _CRT_SECURE_NO_WARNINGS//禁用安全函数警告
#pragma warning(disable:6031)//禁用 6031 的安全警告
#include <stdio.h>int main() {for (int i = 1;i <= 10;i = i + 1) {if (i == 5) {continue;}printf("i的值为 %d\n", i);}
}
逻辑 和我们上一个案例基本是一致的
然后 我们运行代码
可以看到 输出了 1 到 10 但少了 5 因为 5那次循环执行到 continue 就直接被跳出去 执行下一次循环了
简单说 遇到 break 整个循环就停了 而 continue只是跳出了这一次 循环 执行下一次去了
3. goto 语句
这是用于嵌套语句跳出的逻辑
#define _CRT_SECURE_NO_WARNINGS//禁用安全函数警告
#pragma warning(disable:6031)//禁用 6031 的安全警告
#include <stdio.h>int main() {for (int i = 1;i <= 10;i = i + 1) {for (int i = 1;i <= 10;i = i + 1) {if (i == 5) {break;}printf("i的值为 %d\n", i);}printf("外层执行\n");}
}
break 只能实现 每次 到 5把里面这个循环关了
但是 如果我们想一起关掉
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable:6031)
#include <stdio.h>int main() {for (int i = 1; i <= 10; i = i + 1) {for (int j = 1; j <= 10; j = j + 1) { // 使用 j 代替内层循环的变量名if (j == 5) {goto PRN;}printf("j的值为 %d\n", j);}printf("外层执行\n");}PRN:printf("跳出内层循环\n");return 0;
}
运行结果如下
这里 我们做了 goto 表示为 PRN
自动跳到 PRN 的位置