🔥小龙报:个人主页 🎬作者简介:C++研发,嵌入式,机器人方向学习者 ❄️个人专栏:《C语言》 ✨ 永远相信美好的事情即将发生
if(表达式)
语句;
while(表达式)
语句;//如果循环体想包含更多的语句,可以加上⼤括号 if只能执行一次while可以实现循环效果

首先执行while括号里的语句是否为假为假则跳出循环,否则就执行while的控制语句之后再次判断,直到不满足判断表达式
1.3.1例:打印1到10的数字
#include <stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
printf("%d ", i);
i++;
}
return 0;
}执行结果:

1.3.1 例:逆序输出 例:输入1234,输出4321 解释:要获得一个数的最低位可以使用n %10; 去除一个数的最低位n / 10;
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
while (n)
{
printf("%d ", n % 10);
n /= 10;
}
return 0;
}运行结果:

for(表达式1; 表达式2; 表达式3)
语句;//如果循环体想包含更多的语句,可以加上⼤括表达式1:⽤于循环变量的初始化 表达式2:⽤于循环结束条件的判断 表达式3:⽤于循环变量的调整

例:打印1到10的数
#include <stdio.h>
int main()
{
for (int i = 1; i <= 10; i++)
{
printf("%d ", i);
}
return 0;
}运行结果

我们可以看出for循环的代码比while代码更加简洁,因此我们在使用循环时首先应该考虑for循环 例:打印1到100中3的倍数的数字的和
#include <stdio.h>
int main()
{
int sum = 0;
for (int i = 3; i <= 100; i += 3)
sum += i;
printf("%d",sum);
return 0;
}运行结果:


从上述两段代码对比可以看出for比起while循环的三部分更加集中,while则会比较分散,由此可以从形式上来看for循环更优一点
do
语句;
while(表达式);注:while 和 for 都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳出循环; ⽽ do while 循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏ while 后的判断表达式,表达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。

注:do-while循环最特殊的地方是 - -> 循环体至少执行一次
例:打印1到10;
#include <stdio.h>
int main()
{
int i = 1;
do
{
printf("%d ", i);
i++;
}
while (i <= 10);
return 0;
}执行结果

注:基于do while 使⽤在循环体⾄少被执⾏⼀次的场景下,所以较少⼀些。 但我们也有一些场合使用do-while循环可能会更好一点 例: 输⼊⼀个正整数,计算这个整数是⼏位数? 例如: 输⼊:1234 输出:4 输⼊:12 输出:2
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
int ans = 0; //计算位数
do //处理特殊情况0
{
n /= 10;
ans++;
}
while (n);
printf("%d", ans);
}运行结果

continue:跳过代码中continue后面的语句,并跳过本次循环; break:跳过本次循环
#include <stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
printf("%d ", i);
if (i == 5)
break; //当i等于5后,就执⾏break,循环就终⽌了
i++;
}
return 0;
}运行结果

我们可以看到打印了1,2,3,4后,当i等于5的时候,循环在 break 的地⽅终⽌,不再打印,不再循环。由此我们可以看出break的作用 永久的终⽌循环,只要 break 被执⾏, break 外的第⼀层循环就终⽌了
例:
#include <stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
printf("%d ", i);
if (i == 5)
continue; //当i等于5后,就执⾏continue,直接跳过continue的代码,去循环的判断的地⽅
//因为这⾥跳过了i = i+1,所以i⼀直为5,程序陷⼊和死循环
i++;
}
return 0;
}因为运行结果死循环这里就不给大家展示了
#include <stdio.h>
int main()
{
for(int i = 1;i <= 10;i++)
{
printf("%d ", i);
if (i == 5)
break;
}
return 0;
}这段代码和while的那段代码本质意思一样这里就不过多解释了 运行结果:

#include <stdio.h>
int main()
{
for(int i = 1;i <= 10;i++)
{
if (i == 5)
continue; //这⾥continue跳过了后边的打印,来到了i++的调整部分
printf("%d ", i);
}
return 0;
}运行结果:

注: for 循环中 continue 的作⽤是跳过本次循环中 continue 后的代码,直接去到循环的调整部分。未来当某个条件发⽣的时候,本次循环⽆需再执⾏后续某些操作的时候,就可以使⽤continue 来实现

do-while循环中的break和continue语句的作用几乎与while一模一样大家就自行体会啦,有任何疑惑也可以在评论区发出,如果笔者知到一定会为大家解答的
例:找出100~200之间的素数,并打印在屏幕上。 注:素数⼜称质数,只能被1和本⾝整除的数字 题目解析: 假设要判断i是否为素数,需要拿2i-1之间的数字去试除i,需要产⽣2i-1之间的数字,也可以使⽤循环解决。 如果2~i-1之间有数字能整除i,则i不是素数,如果都不能整除,则i是素数。
#include <stdio.h>
int main()
{
for(int i = 100;i <= 200;i++)
{
int flag = 0; //假设i是质数
for (int j = 2; j < i; j++)
{
if (i % j == 0)
{
flag = 1;
break;
}
}
if (flag == 0)
printf("%d ",i);
}
return 0;
}运行结果

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 就⾮常的⽅便了。 例:
for(...)
{
for(...)
{
for(...)
{
if(disaster)
goto error;
}
}
}
error:
//...在这段代码,本来 for 循环想提前退出得使⽤ break ,⼀个 break 只能跳出⼀层 for 循环,如果3层循环嵌套就得使⽤3个 break 才能跳出循环,所以在这种情况下我们使⽤ goto 语句就会更加的快捷。
✨ 本文介绍了C语言中三种循环结构(while、for、do-while)以及控制语句(break和continue)的使用方法。重点分析了while与if的区别、for循环的简洁性以及do-while循环至少执行一次的特点,并通过数字打印、逆序输出等实例进行说明。同时比较了不同循环中break和continue的差异,最后以素数判断为例展示了循环嵌套的应用。全文通过代码示例和流程图帮助读者理解循环结构的工作原理和适用场景。