while
如果我们把while翻译做“当”,那么一个while循环的意思就是:当条件满足时,不断的重复需变换体内的语句。
循环执行之前判断是否继续循环,所以由可能循环一次也没有被执行;
条件成立是循环继续的条件。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main1() {
//循环:将相同的代码进行书写多次
//循环语句
/*
while(循环条件){
循环语句;
}
//如果满足循环条件,就执行循环语句,否则就跳出循环。
*/
printf("开始做俯卧撑\n");
printf("做俯卧撑\n");
printf("做俯卧撑\n");
printf("做俯卧撑\n");
printf("做俯卧撑\n");
printf("做俯卧撑\n");
printf("做俯卧撑\n");
printf("做俯卧撑\n");
printf("做俯卧撑\n");
printf("做俯卧撑\n");
printf("做俯卧撑\n");
//循环条件:使用一个变量来保存个数count=0 count<10
//循环语句:printf("已经做了%d个\n",1);
//声明一个变量,保存次数
//小王体力不行,实在做不了50个,王老师通融一下,做20个
/*
int count = 1;
while (count<=50) {
//特殊条件
if (count > 20) {
break;//退出循环
}
//循环语句
printf("做俯卧撑,%d\n",count);
//更新循环变量
count = count + 1;
}
*/
//死循环:循环不会终止(在使用循环时,一定注意死循环发生)
//想偷懒,王老师转过身,你少做一个
int count = 1;
while (count <= 30) {
//跳过一次循环语句的特殊情况
if (count%10==0) {
count = count + 1;
continue;//结束本次循环,继续下次循环
}
//循环语句
printf("做俯卧撑,%d\n", count);
//更新循环变量
count = count + 1;
}
return 0;
}
打印数字1-10,遇到8结束循环,不打印4。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main2() {
//在控制台打印1-10
//定义一个变量i=1;
int i = 1;
//循环条件 i<=10
while (i<=10) {
//特殊情况;遇到8就停止打印
if (i == 8) {
break;
}
//遇到4,跳过打印
if (i == 4) {
i = i + 1;
continue;
}
//循环语句
printf("%-3d",i);
//遇到5的倍数就换行,循环中可以嵌套分支语句
if (i%3==0) {
printf("\n");
}
//更新循环变量
i = i + 1;
}
return 0;
}
备: break 可直接跳出循环, continue 跳过本次循环打印下一次循环。
for循环
for循环就像一个计数循环:设定一个计数器,初始化它,然后在计数器达到某一值之前,重复执行循环体,而每执行一轮循环,计数器值以一定步进行调整,比如加1或者减1。
<for:对于>
for(count=10;count>0;count--);
就读成:“对于一开始的count=10,当count>10时,重复做循环体,每一论循环在做完循环体内语句后,使得count--。”
<1>使用for循环打印30遍俯卧撑,并在每一次俯卧撑前写明这是第几次循环。
<2>用for循环打印1-10,遇到5的倍数跳过,遇到7结束循环。
for(i=0;i<n;i++);
则循环的次数是n,而循环结束以后,i的值是n。循环的控制变量i;是选择从0开始还是从1开始,是判断i<=n,对循环的次数,循环结束后变量的值都有影响。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main9() {
/*
for(循环变量初始化;循环条件;更新循环变量){
循环体
}
*/
//打印30遍“俯卧撑”
int count = 1;
while (count <= 30) {
printf("第%d个俯卧撑\n",count);
//更新循环变量
count = count + 1;
}
//使用for循环修改
for (int count = 1; count <= 30; count++) {
//循环体
printf("第%d个俯卧撑\n", count);
}
//打印1-10所有数字
for (int i=1;i<10;i++) {
//如果遇到5的倍数,就跳过
if (i%5==0) {
continue;
}
//遇到7就结束循环
if (i == 7) {
break;//终止循环
}
printf("%d",i);
}
return 0;
}
<1>打印1-100之家 所有的偶数
<>打印100-999之间所有的质数
<>求1+2+3+4+.......+100的和并打印出来。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main10() {
//打印1-100之间所有的偶数
/*
for (int num=1;num<=100;num++) {
//判断是否是偶数
if (num % 2 == 0) {
printf("%d是偶数\n", num);
}
}
*/
/*
for(int num=2;num<=100;num=num+2){
printf("%d是偶数\n",num);
}
*/
//打印100-999之间所有的质数
for (int num = 100; num <= 999; num++) {
//添加一个标识位
int flag = -1;
//判断是否质数
for (int i = 2; i < num; i++) {
//条件
if (num % i == 0) {
flag = 0;
break;//结束内层循环
}
}
//通过标识符进行判断
if (flag == -1) {
printf("%d是质数", num);
}
}
//求和1+2+3+4+...+100
//声明一个变量保存结果
int sum = 0;
for (int i = 1; i <=100; i++) {
if (i % 2 == 1) {
sum = sum + i;
}
}
printf("sum=%d\n",sum);
return 0;
}
《备:for(;条件;)==while(条件)》
do-while 循环
在进入循环的时候不做检查,而是在执行完一轮循环的代码之后,再来检查循环的条件是否满足,如果满足则继续下一轮循环,不满足则结束循环。
两种循环
do-while循环输出和while循环很像,区别是在循环体执行结束的时候才来判断条件。也就是说无论如何,循环都会执行至少一遍然后再来判断条件。与while循环相同的是,条件满足时执行循环,条件不满足时结束循环。
提醒用户输入考试成绩,判断是否及格,只能考三次。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main11() {
/*
do {
//循环体
} while (循环表达式);
*/
/*
//使用do_while求和1+2+3+4+...+100
int sum = 0;
//循环变量
int i = 1;
do {
sum = sum + i;
i++;
} while (i<=100);//先执行,后判断 1+
printf("sum=%d\n",sum);
*/
/*
sum=0;
i=1;
while(i<=100){//先判断后执行 0+
sum=sum+i;
i++;
}
printf("sum=%d\n",sum);
*/
//输入考试成绩,判断是否及格,最多只能考三次
int score = 0;
int count = 1;
do {
printf("第%d次考试成绩\n",count);
printf("输入考试成绩:");
scanf("%d",&score);
if (score >= 60) {
printf("恭喜您,考试通过!");
break;
}
//更新循环变量
count=count+1;
} while (count <= 3);
/*
int score = 0;
int count = 1;
printf("第%d次考试成绩\n", count);
printf("输入考试成绩:");
scanf("%d", &score);
while (count < 3) {
if (score >= 60) {
printf("恭喜您,考试通过!");
break;
}
count++;
printf("第%d次考试成绩\n", count);
printf("输入考试成绩:");
}
*/
return 0;
}