C语言中提供了3种循环结构:while
循环 、do-while
循环、 for
循环。
一、while循环
while(表达式)
语句;//如果循环体想包含更多的语句,可以加上⼤括号
while
循环的执行流程:
例题:
输⼊⼀个正的整数,逆序打印这个整数的每⼀位
例如:
输⼊:1234,输出:4 3 2 1
输⼊:521,输出:1 2 5#include <stdio.h> int main() { int n = 0; scanf("%d", &n); while(n) { printf("%d ", n%10); n /= 10; } return 0; }
二、for 循环
2.1 for 循环
for(表达式1; 表达式2; 表达式3)
语句
表达式1:⽤于循环变量的初始化
表达式2:⽤于循环结束条件的判断
表达式3:⽤于循环变量的调整
for循环执行过程:
2.2 for 循环与 while 循环对比:
for 和 while 在实现循环的过程中都有初始化、判断、调整这三个部分,但是 for 循环的三个部分非常集中,便于代码的维护,而如果代码较多的时候 while 循环的三个部分就比较分散,所以从形式上 for 循环要更优⼀些。
三、do-while 循环
do
语句;
while(表达式);
while
和 for
这两种循环都是先判断,条件如果满足就进⼊循环,执行循环语句,如果不满足就跳出循环;而 do-while
循环则是先直接进入循环体,执行循环语句,然后再执行 while
后的判断表达式,表达式为真,就会进行下⼀次,表达式为假,则不再继续循环。
四、break 和 continue 语句
在循环执行的过程中,如果某些状况发生的时候,需要提前中止循环,这是非常常见的现象。C语言中提供了 break
和 continue
两个关键字,就是应该到循环中的。
• break
的作用是用于永久的终止循环,只要 break 被执行,直接就会跳出循环,继续往后执行。
• continue
的作用是跳过本次循环 continue
后边的代码,在 for
循环和 while
循环中有所差异的。
练习:
找出100~200之间的素数,并打印在屏幕上。#include <stdio.h> int main() { int i = 0; //循环产⽣100~200的数字 for(i=100; i<=200; i++) { //判断i是否为素数 //循环产⽣2~i-1之间的数字 int j = 0; int flag = 1;//假设i是素数 for(j=2; j<i; j++) { if(i % j == 0) { flag = 0; break; } } if(flag == 1) printf("%d ", i); } return 0; }
五、goto 语句
C语言提供了⼀种非常特别的语法,就是 goto
语句和跳转标号, goto
语句可以实现在同⼀个函数内跳转到设置好的标号处。
#include <stdio.h>
int main()
{
printf("hehe\n");
goto next:
printf("haha\n");
next:
printf("跳过了haha的打印\n");
return 0;
}
goto
语句如果使用的不当,就会导致在函数内部随意乱跳转,打乱程序的执行流程,所以我们的建议是能不用尽量不去使用;但是 goto
语句也不是一无是处,在多层循环的代码中,如果想快速跳出使用 goto
就非常的方便了。