【C语言入门篇】分支与循环1

【C语言入门篇】

  

 🌈个人主页:开敲

🔥所属专栏:C语言

 

  今天刚学完C语言的分支与循环,于是便想来浅谈一下我对于C语言分支与循环的看法。

  首先来聊聊while循环吧,while循环的格式大概如下:

  while循环首先会根据括号内的表达式的真假来选择是否进入,为真进入,为假则不进入,如果表达式一直为真的话,就会陷入死循环,因此,每次循环结束,括号内的表达式应当趋近于假,比如while(i<=10)这个循环,可以在循环主体内部加上i++(即每次循环结束,i的值+1),这样,在经过10次循环以后,i的值不再<=10,循环也就不再执行。再来讲讲循环主体,在判断括号内的表达式为真的时候,便会进入循环执行循环主体,例如:

该代码的执行结果如下:

因为上面初始化i的值为0,因此,在执行循环时,i是从0开始执行到i=3,因此执行结果为四个hehe。当然,while循环也可以互相嵌套,例如:

该代码的执行结果如下:

接下来,再讲讲C语言中最常用的循环——for循环。

for循环的格式大概如下:

具体例子:

该代码的执行结果是:

由此我们不难发现,for循环和while循环括号内的内容不太一样,while循环的i++是放在了循环主体里,每次进入循环的时候执行,而for循环的i++是放在了括号内部,每次循环执行结束跳回的时候执行,那么这样做有什么好处呢,下面我们来介绍一个语句——continue,先讲讲continue的作用,continue的作用就是跳过后面的代码,直接回到循环开头,什么意思呢,下面来具体说明。

先来看一段代码:

可以来猜猜看这段代码执行的结果会是什么,下面是揭晓时刻:

可以看到,在打印了五个hehe以后,光标停留在了下一行,这并不是说明循环执行结束了,恰恰相反,这陷入了死循环,为什么呢,让我们来分析一下:

这段代码的意思就是若i<=10,则进入循环执行循环主体,当i=0时,进入循环,而后判断i是否等于5,显然不等于,于是跳过if语句执行下面的printf和i++,i变成1后还是<=10,继续进来执行主体,判断是否等于5,不等于,跳过,执行printf和i++,直到经过五次循环以后,i=5进入循环,在判断i==5成立以后,进入if语句执行continue,上面说了,continue的作用就是跳过后面的代码,直接回到循环的开头,因此,后面的printf语句和i++语句就被跳过了,printf语句跳过了无伤大雅,重要的是i++语句被跳过了,这下问题可就大了,i++语句被跳过了,i无法自增,因此,i将以5重新回到循环开头,然后进入循环,继续判断i==5,相等,再次进入if语句执行continue,然后再次跳过printf和i++,就这样,i始终以5进入循环执行循环主体,无法跳出循环,陷入了死循环。ok,让我们再次回到一开始的问题,for循环相比于while循环有什么好处。

同样的 ,先来看一段代码:

这段代码的执行结果是什么,也可以来猜猜看,下面时揭晓时刻:

可以看到,这段代码最后输出了10行hehe,这是为什么呢?让我们来分析分析:

可以看到,这段代码i同样是以0开始进入循环,判断i<=10是否为真,进入循环,上面讲过,for循环括号内的i++是在结束一次循环后执行,因此,i以0进入循环后同样判断i是否等于5,不等于,跳过,执行printf然后回到循环开头执行i++,i变成1,就这样执行下去,直到i等于5的时候,判断相等了,进入if执行continue,跳过了后面的printf回到循环开头,但是这里的continue只跳过了printf,影响不到i++,因为i++是在循环开头执行的,而continue刚好就是回到循环开头,因此,i++照常会执行,不会陷入死循环,那么这里的continue具体作用怎么体现呢,还是来看一段代码:

猜猜看这段代码的执行结果,下面是揭晓时刻:

不难发现,这段代码打印了除了5之外的0~10的数字,为什么呢,上面已经说明过了,当i=5的时候,跳过了后面的printf语句,因此,i=5的结果并不会打印,但是i++还是会执行,因此,5以后的数字是正常打印,直到i<=10的结果为假,跳出循环。

  今天就先浅谈for循环while循环和continue语句吧,剩下还有do while循环 break语句等就放在下一篇博客来讲吧。

                                                 这里是计算机小小白,我们下期不见不散。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值