C语言初学者while/do—while语法学习笔记

(因为是刚接触c语言的小白,所以使用最简单的术语进行解读。-----以下是本人在学习中收集并理解整理的,如有错误还请大佬指出)

while/do—while

先来说说while吧

while

虽然可能大家都知道了,但是都是小白,我还是解释一下吧。while,当满足循环的前提条件时,会进行一次循环语句。随后再判断一次前提条件,如果成立,继续循环,直到条件不成立,结束while循环。

图像大概是这样的

       

while使用格式是这样的:

while(循环的前提条件)
{
    循环语句
}

while()后面的  {}  如果循环语句只有一句的话,可以不加。系统会默认while后面第一句话为while的循环语句。如果有两条语句而不打   {}   的话,只有第一条语句会进入循环。

(要注意while语句后面没有加   哦。)

但如果你写成了这样

while(循环的前提条件);
{
    循环语句     //这里的循环语句失去了他该有的工作
}

那么恭喜你,你得到了一个没有循环语句的循环。

为什么?

以下为个人见解:你可以认为   ; 指的是一个空的语句,根据上一条所说,这个分号没有被  {}  括住,在while身后没有紧跟   {}   的情况下while会默认自己身后的第一句话为循环体,但是他身后只有一个 也就什么都不会发生了。随后如果while循环结束,系统会按正常顺序读到 “循环语句” ,但是只执行一遍。

在while()后面直接添加;这种情况很可能导致程序出错,比如下面的程序会发生什么?思考一下?

int a=3;
while(a>2);
a--;             //a--等于a=a-1(和--a有差别,但这里不做解释)

————————

没错,它会无限循环,因为判断a大于2是永远成立的,后面的 不会对a的值进行修改(当然它啥也不会做)。你会发现你的程序在这一步卡住了,并且永远留在了这里。

那么有人会想,既然它会无限循环,那么你之前说while();循环结束不就错了吗?

这里就要联系到while判定的性质了

while的判定

while的条件判断,只会判断是否为0或1!

在while的眼里,他只认识两个数,一个是0,一个是1。当条件正确时,while会认为它是1,比如while(1),while(3)(只有一个数字当然是正确的),while(2>1),甚至是while(!0)。在while眼中,他看到的就是while(1)。

但是如果是错误的比如while(2<1)或者直接为while(0),在while眼中都是while(0),然后会结束while的循环

所以说

int a=3;
while(a--);    //a--等于a=a-1在这同样不做深入解释

  它会在a减为0时退出循环。

现在,我们的while结束了。就来看看do—while吧

do—while

在学过while之后,do—while就很简单了。和while的区别是,do—while会先进行一次循环,再判断条件是否成立。

图像是这样的:

 

除了do—while会先进行一次循环语句再判断条件是否成立之外,其他方面与while相同。

  do—while的使用格式是这样的:

do
{
循环语句
}
while(条件);

和while一样,在do后面只有一条语句时可以不用加   {}

注意:在这里while加了分号 !

do—while后面的分号是必要的(如果你想过编译的话),他意味着do—while函数的结束。

以下为个人见解(我猜的):如果不用加分号来对while进行处理,在进行阅读时可能会因为没有看见do而错误的以为下方的while为单独的一个while语句。而进行错误解读。(毕竟一个身后跟着;的while挺引人注目的)

最后,让我们一起愉快的拥抱c语言大家庭吧

//(因为本人为c语言新手,如有错误,还请各位手下留情 )

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值