前言: 上次我们介绍完了分支语句这回我们来介绍循环语句,C语言的循环语句有3种分别是while循环for循环do-while循环下面我们一一介绍。
一,while循环
首先while循环的基本结构长这样:
while(表达式)
{
.....//表达式为真时所执行的语句
}
看到这里你是否会想到if语句,if语句与while循环十分相似,这里我们做个比较
if(表达式)
{
.....//表达式为真时所执行的语句
}
区别就是while是判断多次,而if只判断一次 while循环执行的逻辑是:首先上来就是执行判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执行循环语句,语句执⾏完后再继续判断,是否进行下⼀次判断。 举个例子:在我们的日常生活中一定都会有自己想要买的东西比如说手机,电脑等,而我们在买手机,电脑之前肯定都会攒够一定的钱才会去买,这就有点像c语言中的while循环,我们一直重复攒钱这个动作直到攒够了钱为止(达到这个条件)我们才停止攒钱(结束循环)。
写成代码应该是这样:
#include<stdio.h>
int main()
{
daouble price=2999.9;//手机的价格
int saved_money=0;//所攒的钱数
while(saved_money<price)
{
saved_money=save_money+100;
printf("现在攒了%d元了。\n",saved_money);
}
printf("攒了%d元够钱买手机了!\n",saved_money);
}
return 0;
很明显从运行结果上看,当我们的钱不够买手机也就是saved_money<price时表达式的值为真时,就一直重复攒钱这个动作一直攒到3000元即saved_money>price时表达式为假,就从while循环里跳出来然后去执行 “攒够了3000元够钱买手机了” 这段代码。
由此我们得出一个结论在我们写程序的时候当某个步骤要重复执行的时候就需要用上while循环了比如上面一直重复攒钱这个动作。
二,do while循环
首先我们来说说do while循环的构成:
do{
.....//第一次无论条件的真假都会执行
}while(表达式);
与while循环不同的是while循环上来就先判断表达式是否为真,为真才执行while后面的内容。而do while循环则是先执行一次再去判断表达式的值是否为真,为真就再返回来执行do下面的代码,直到表达式为假才会从while这里跳出循环。
举个例子你就明白了:
#include<stdio.h>
int main()
{
int i = 1;
do {
i++;
printf("%d ", i);
} while (i < 1);
}
从运行结果我们可以看出来,do while循环执行的条件是当我们的i<1时才执行但我们输出的结果却是2这已经很直观的告诉了我们do while 循环上来就执行然后再去判断。
由此我们可以得出结论do while循环的特点就是至少被执行一次。
三,for循环
在三种循环中for循环是最为常用的循环,其基本组成为:
for(表达式1;表达式2;表达式3)
{
//语句;如果循环体想包含更多的语句,可以加上⼤括号
}
表达式1:用于循环变量的初始化
表达式2:用于循环结束条件的判断
表达式3:用于循环变量的调整
注意表达式一和表达式三可以省略不写在for后面的括号内,表达式1可以写在for循环的上面,表达式3根据自己的需求可以写在for循环里面
for循环运行的逻辑是:首先执表达式1初始化循环变量,接下来就是执行表达式2 的判断部分表达式2 的结果如果==0(条件为假)则循环结束,表达式2 的结果如果!=0(条件为真)则执行循环语句,循环语句执行完后,再去执行表达式3 :调整循环变量,然后再去表达式2 的地方执行判断,达式表达式2 的结果是否为0,决定循环是否继续。整个循环的过程中,表达式1初始化部分只被执行1次,剩下的就是表达式2、句、表达式3在循环
举个例子写一个for循环打印1到10这10个数:
#include<stdio.h>
int main()
{
for(int i=1;i<=10;i++)
{
printf("%d ",i);
}
return 0;
}
也可以写成下面这种形式/*
#include<stdio.h>
int main()
{
int i=1;
for(;i<=10;)
{
printf("%d ",i);
i++;
}
return 0;
}*/
从运行结果我们能看出,当我们初始化完变量以后,for循环就会根据我们表达式2和表达式3去判断和调整,最开始我们定义i为1 而1<10 条件为真打印 然后加加一下 i++相当于i = i + 1 接着i就变成2了 然后再判断2<10 再调整再判断再调整再判断以此类推。不难发现for循环是先判断初始值然后再调整再判断直到表达式2的条件为假才跳出循环。
由此我们也可以得出结论与while循环不知道循环次数不同for循环主要在循环次数已知的条件下使用。
四,break与continue
1,break
当我们了解了这几种循环后应该会有个疑问难道只能等到达到我们设定的条件时才能跳出循环吗?答案是否定的,c语言中break和continue这两个关键字是专门用结束循环的,下面我们就来了解一下break与continue。
还是上面那个攒钱买手机的例子,了解了for循环后我们用for循环举例:
#include<stdio.h>
int main()
{
int saved_money=1900;//所攒的钱数
for(int i=0;i<=21;i++)
{
if(saved_money>=2100)
{
printf("攒了%d次",i);
printf("攒够了2100了!\n");
break;
}
saved_money = saved_money+100;
}
return 0;
}
还是上面的例子,假如我们要攒够2100买手机我们本想分21次赞完2100的但是途中有父母的支持给了我们1900此时我们只需要再攒200(每次攒100攒2次)就可以买到手机了,运行结果也告诉了我们攒了2次。攒够钱了自然就不需要攒了所以这时就要用break提前结束循环。
当saved_money>=2100时候,循环在break 的地方终止住,不再打印,不再循环。所以break 的作⽤就是永久的终止循环,只要break 被执行,break 外的第⼀层循环(本层循环)就终止了。那以后我们在循环中,想在某种条件下终止循环,则可以使用break来完成我们想要的效果。
2,continue
continue翻译过来是继续的意思,那继续怎么能终止循环呢?再用上面打印1到10这10个数来举例:
#include<stdio.h>
int main()
{
for(int i=1;i<=10;i++)
{
if(i==5)
{
continue;
}
printf("%d ",i);
}
return 0;
}
这段代码说的是当我们的i等于5时就continue一下,通过运行结果我们可以很直观的看出只有5没有被打印出来,与刚刚的break对比来看就可以知道 break是提前结束了循环 即上面的例子中执行了2次后面的13次便不再执行了,而continue则不同continue是只中断了打印5这一次循环即continue是结束本次循环, *所以在for循环中continue 的作⽤是跳过本次循环中continue 后的代码,直接去到循环的调整部分。
未来当某个条件发⽣的时候,本次循环无需再执⾏后续某些操作的时候就可以使⽤continue 来实现。
以上就是循环语句的所有内容啦,如果感觉内容还不错,有所收获的话还望给个三连,我会继续努力创作优质内容最后感谢能坚持看到这里的读者,给你们点赞!如有问题欢迎指出!