个人主页:天寒雨落的博客_CSDN博客-python,c++,安装教程领域博主
💬 刷题网站:一款立志于C语言的题库网站蓝桥杯ACM训练系统 - C语言网 (dotcpp.com)
特别标注:该博主将长期更新c语言内容,初学c语言的友友们,关注博主不迷路!
一、while语句
1.形式
while(条件表达式){
循环体语句;
}
如果满足条件表达式则执行循环体语句,不满足,则循环结束,循环结束次数为0
2.实例
1.题目
输出循环控制变量i的值
2.代码
#include "stdio.h"int main() {int i = 1;while (i <= 10) {printf("i=%d\n", i);i++;}return 0;
}
3.运行结果
注意while()后面是{不是;
二、do-while
1.形式
do{
循环体语句;
}while(条件表达式);
先执行一次循环体内的语句,在计算条件表达式的值,如果为真(非0),则接着执行循环体语句,以此类推。
2.易错点
1.与while语句和for语句都不同的是,do-while是先执行一次循环体内的语句,然后在判断条件表达式。
2.do-while的while(条件表达式)后面必须加;。
3.这并不像for循环有增值表达式,需要我们自己在while循环体语句里加,不然就会死循环。
3.实例
1.题目
求sum=1+2+3+......+n的值
2.代码
#include "stdio.h"int main() {int sum = 0, i = 1;do {sum += i;i++;} while (i <= 100);printf("sum=%d", sum);return 0;
}
3.执行结果
4.相关报错
1.[错误] 期待 ';' 在此之前: 'printf'
原因:在while(条件表达式)后面没有加;
解决办法:在在while(条件表达式)后面加;
三、break语句
1.说明
break;
强制终止当前的循环语句,去执行循环语句下面的一个语句,通常与if语句连用,当满足什么条件时直接退出循环。
2.实例
1.题目
在100~200找到第一个能被16整除的数
2.代码
#include "stdio.h"int main() {int i = 100;do {if (i % 16 == 0) {break;}i++;} while (i <= 200);printf("在100~200第一个能被16整除的数是%d", i);return 0;
}
3.运行结果
四、continue语句
1.说明
continue;
不在执行循环体下面的语句,结束本次循环,执行下一次循环。
2.实例
1.题目
输出1~10不能被3整除的数
2.错误代码
#include "stdio.h"int main() {int i = 1;do {if (i % 3 == 0) {continue;}printf("%5d", i);i++;} while (i <= 10);return 0;
}
3.运行结果
4.解析
为什么到2后面就没有输出了呢?
因为continue是不在执行循环体里continue下面的语句,结束本次循环,什么意思呢?也就是说啊,执行2都正常输出,到3的时候,满足i%3==0,执行continue语句,然后后面的i++没有执行呀,也就是说i的值到这里一直没有变,所以进入了死循环,下面介绍如何正确的在do-while使用continue语句。
5.正确代码
#include "stdio.h"int main() {int i = 0;do {i++;if (i % 3 == 0) {continue;}printf("%5d", i);} while (i <= 10);return 0;
}
6.运行结果
五、总结
需要区分while和do-while的区别,如果循环语句次数是已知的,常用for循环语句,如果是未知的,常用while或do-while语句。当然,这三个语句是可以互相转化的。
👍+✏️+⭐️是对博主最大的鼓励与支持!!!