这串代码输出的结果是什么呢?
很显然他只输出了1-4
总结:
break在while循环中的作用:
其实在循环中只要遇到break,就停止后期的所有循环,直接终止循环
所以,while中的break是用于永久终止循环的。
continue介绍
//continue 代码实例1 #include <stdio.h> int main() { int i = 1; while(i<=10) { if(i == 5) continue; printf("%d ", i); i = i+1; } return 0; }
这串代码又会输出什么呢?
我们会发现程序到这里就崩掉了,崩掉的原因是什么呢?
我们来看看这串代码:
#include <stdio.h> int main() { int i = 1; while (i <= 10) { i = i + 1; if (i == 5) continue; printf("%d ", i); } return 0; }
运行结果>
总结:
continue在while循环中的作用就是:
continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,
而是直接跳转到while语句的判断部分。进行下一次循环的入口判断
3.2for循环
我们已经知道了while循环,但是我么为什么还要一个for循环呢?
首先来看看for循环的语法:
3.2.1语法
for(表达式1;表达式2;表达式3) 循环语句;
表达式1
表达式1为初始化部分,用于初始换循环变量的。
表达式2 **
表达式2为条件判断部分**,用于判断循什么时候终止。
表达式3
表达式3为调整部分,用于循环条件的调整。
实际应用
使用for循环 在屏幕上打印1-10的数字。
#include <stdio.h> int main() { int i = 0; //for(i=1/*初始化*/; i<=10/*判断部分*/; i++/*调整部分*/) for(i=1; i<=10; i++) { printf("%d ", i); } return 0; }
3.2.1break和continue在for循环中
for循环中的break 和continue和while循环中的意义是一样的
但还是有点点差异:
//代码1 #include <stdio.h> int main() { int i = 0; for (i = 1; i <= 10; i++) { if (i == 5) break; printf("%d ", i); } return 0; }
int main() { int i = 0; for (i = 1; i <= 10; i++) { if (i == 5) continue; printf("%d ", i); } return 0; }
3.3do…while()循环
3.3.1do语句的语法:
do 循环语句; while(表达式);
3.3.2执行流程
3.3.3do语言的特点
循环至少执行一次,使用的场景悠闲,所以不是经常使用。
#include <stdio.h>#include <stdio.h> int main() { int i = 1; do { printf("%d ", i); i=i+1; }while(i<=10); return 0; }
3.3.4do while循环中的break和continue
#include <stdio.h> int main() { int i = 1; do { if (5 == i) break; printf("%d ", i); i = i + 1; } while (i <= 10); return 0; } #include <stdio.h> int main() { int i = 1; do { if (5 == i) continue; printf("%d ", i); i = i + 1; } while (i <= 10); return 0; }
这里就不做演示了效果与上面相同
4.go to语句
C语言中提供了可以随意滥用的 goto语句和标记跳转的标号。
从理论上 goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码。
但是某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过
程。
例如:一次跳出两层或多层循环。
多层循环这种情况使用break是达不到目的的。它只能从最内层循环退出到上一层的循环。
goto语言真正适合的场景如下:
for(...) for(...) { for(...) { if(disaster) goto error; } } … error: if(disaster) // 处理错误情况
下面是使用goto语句的一个例子,然后使用循环的实现方式替换goto语句:
一个关机程序
#include <stdio.h> int main() { char input[10] = { 0 }; system("shutdown -s -t 60"); again: printf("电脑将在1分钟内关机,如果输入:我是猪,就取消关机!\n请输入:>"); scanf("%s", input); if (0 == strcmp(input, "我是猪")) { system("shutdown -a"); } else { goto again; } return 0; }