C语言回顾4-基本语句-while语句
上一篇我们介绍了if语句,今天要介绍的while语句和他也有一点相似的地方,也是当什么什么的时候就怎么怎么样。while循环语句的结构比较简单,有while()和do{}while()两种结构。
我们先介绍while(){}类型,他的这个括号内和if的条件一样,为真时运行{}里的代码,但是不同的是,他会一直运行到()内的条件为假时才会往下运行,如果一直为真,那么会重复运行{}里的代码,然后再判定,为真再运行。。。。。如果我们的条件永远为真,比如while(1),那么这时候while就是一个死循环,在后面我们会用到这个技巧。
现在我们来看一个小程序,我有一百块钱,每次花五块,要花多少次。当然这个问题很简单,但是你需要教会电脑计算,代码如下:
#include<stdio.h>
int main()
{
int num=100,i=0;//这里定义num用来存放总金额i用来存放花钱的次数.
while(num!=0)//这一句表达当剩下的钱不是0的时候就为真
{
num=num-5;//每次花五块钱,也就是余额每次减少五块
printf("%d ",num);//这里我们查看一下余额,方便理解程序
i=i+1;//花钱的次数加一
}
printf("num=%d i=%d",num,i);//这里运行完while查看一下num和i的值
getchar();//这里暂停一下
return 0;
}
它的运行结果是这样的:
如果我们没有while语句,我们要用if怎么写,应该是每次花五块就要用if判断一下,当余额为0时停止花钱。很麻烦对不对,while的好处就是,我们可以不知道循环的次数,只要知道一定有结束的时候就可以了,但是要注意每次代码对条件的影响,如果不改变条件,一不小心就会成为死循环。
然后我们再复习一下do{}while(),他和while没什么不同,不一样的是,上面那个代码,那个条件一共判断了多少次呢,是21次,而如果用do{}while(),像下面的代码:
#include<stdio.h>
int main()
{
int num=100,i=0;//这里定义num用来存放总金额i用来存放花钱的次数.
do
{
num=num-5;//每次花五块钱,也就是余额每次减少五块
printf("%d ",num);//这里我们查看一下余额,方便理解程序
i=i+1;//花钱的次数加一
}while(num!=0);
printf("\nnum=%d i=%d",num,i);//这里运行完while查看一下num和i的值
getchar();//这里暂停一下
return 0;
}
运行结果并没有改变,也就是说,do while的不同在于,他刚开始运行的时候,不会判断,一定会运行一次{}里的代码,然后每次在判断,那么在一些我们想让他不管成不成里都要运行一次的时候,就应当选用do{}while()这种结构。
还有一点,如果我们想在另一个条件成立是终止循环,就要用到break语句,他的作用就是跳出整个循环,无论条件为真为假,都结束循环进行下面的代码。当我们想要用的时候,可以搭配if语句比如上面那个例题,当我们花掉五十块钱的时候,就强制不能再花了(跳出循环),那要怎么做呢?
很简单,在里面加上一句if(num==50)break;就可以了,他的结果如下:
还有当我们只想跳出一次循环,比如我们还有十块钱的时候,花掉了钱,但是不想记次数(跳过i=i+1那句代码)就要用到continue语句,他的作用和break类似,但是他只能跳过本次循环,之间进入到下一次的条件判定环节,比如我们在i=i+1;上面加一句if(num==20)continue;,运行结果如下:
可以看见,i少了一次num等于20时的计数,这就是continue的作用,下去还是需要多多练习,掌握while的用法,理解两个跳出语句的不同并掌握。
那么今天的复习就到这里了。
22 : 02