【下】分支与循环(c语言)(循环篇)

上期讲到了分支语句,这期我们来聊聊循环语句。

在c语言中,有三种循环语句,分别是whilefordo...while,下面我会依次为大家讲解。

1. while循环

1.1 while

它的语法结构如下:

while(表达式)

        语句;

那么,怎么使用呢?请看代码:

可以看到,while 下方语句被执行了15次,这是因为括号中表达式的结果为真时就会执行a++,直到a>=15才结束循环。

如果表达式结果永远为真的话,那么循环就会一直执行下去。(死循环)

1.2 流程

它的流程如下:

2. for循环

2.1 for

for(表达式1; 表达式2; 表达式3)

        语句;

表达式1 ⽤于循环变量的初始化

表达式2 ⽤于循环结束条件的判断

表达式3 ⽤于循环变量的调整

for 循环可以将信息清晰的展现出来,增强代码可读性,所以它是三种循环中最常用的循环。

1.1的代码也可以用 for 循环来写:

细心的朋友可能发现了,在 while 循环中判断循环结束的表达式(a<15)在 for 循环中变为了(a<=15)才成功打印1~15。

这是为什么呢?

2.2 流程

它的流程如下:

首先,初始化a=0,再判断a是否<=15,如果是,就执行语句,再让a自增1,再进行判断。

所以,在这个过程中,初始化a=0只会执行一次,而a++则被挪到 printf 语句后了,也就是说,a++最后执行,所以才导致了这样的结果。

3. do...while循环

3.1 do...whiile

它的语法结构如下:

do

        语句;

while(表达式);

1.1的代码用 do...while 完成:

3.2 流程

while for 这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳 出循环; ⽽ do while 循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏ while 后的判断表达式,表达式为真,就会再进⾏⼀次执行循环语句,表达式为假,则不再继续循环。

因此,无论如何 do...while 的循环语句都会执行一次,而如果 forwhile 的判断表达式结果为假的话,会直接跳过循环语句。

4. break和continue语句

C语⾔提供了 breakcontinue 两个关键字,是应⽤到循环中的。( break 也可以用到 switch 语句中)

其中 break 的作⽤是⽤于永久地终⽌循环,只要 break 被执⾏,就会跳出循环,继续往后执⾏。

continue 的作⽤是跳过本次循环 continue 后边的代码,继续往后执⾏。

4.1 while循环

请看代码:

我们发现,结果只打印了1,说明 break 成功在执行下次循环前终止了循环。

当然,也可以配上 if 语句:

从结果上看,a=5的值没被打印,a=7~10的值也没被打印。

4.2 for循环

for 循环中的 break

for 循环中的 continue

for 循环中的 continuewhile 循环中的有细微的差别,可以对比一下:

当我们把a++放到最后时,死循环了。

这和它们循环时的流程有关:

for 循环中,先判断,当a=5时跳过下方语句结束本次循环,但仍会执行a++。

而在 while 循环中,continue 直接跳过了a++,导致a永远等于5使程序死循环执行。

4.3 do...while循环

它的执行流程和 while 循环几乎没有差别,在此不进行解释。

5. 循环的嵌套

循环嵌套可以帮助我们完成更多东西,比如:做一张99乘法口诀表。

在这之中,x是第一个数,y是第二个数(即x*y=xx)。

6. goto语句

当我们学完了循环嵌套后,不可避免地会遇上这种情况:

for(...)

{

        for(...)

        {

                for(...)

                { 

                   ......

                }

        }

}

看着就头大,总不能每个循环都用 break 才能提前退出吧,这时我们就可以用 goto 语句了:

for(...)

{

        for(...)

        {

                for(...)

                { 

                         if()

                        goto here;

                }

        }

}

here:

......

 一步到位。

switch 语句也可以这么做:

switch(...)

{

case 0:

...

case 1:

        switch(...)

        {

        case 0:

        ...

        case 1:

        ...

        default:

                goto here;

        }

default:

...

}

here:

......

虽然大家说 goto 语句最好不要用,但是我个人觉得 goto 语句还是挺好用的,别乱用就行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值