C语言:循环语句(逻辑图解)

循环简介

在生活中,我们每天都会重复做很多同样的事情或者有规律的过着生活,这种循环反复的事情,在C语言我们可以也可以实现。
C语言中提供了三种执行循环语句分别是:
while循环语句
for循环语句

do…while循环语句

循环辅助:break和continue

在一个循环程序中,当我们想要跳过循环程序中某一次循环中不想要的语句部分,可以在这部分语句前面加上continue,结束本次执行,跳到下一次循环语句中。
当我们执行循环程序时,突然想要跳出这个循环程序,就用break
在循环语句中,我们常常通过if语句来执行判断是否要跳出本次循环或者跳出这个循环程序,所以break和continue会和if语句进行搭配使用
具体操作请看下面。

while语句

语法结构

         while(表达式)
         循环语句;

在表达式中,我们常用关系表达式,也就是值之间的比较。如果表达式=条件为真(非零)就会执行该程序,为假(零)就会跳出该循环程序。
在这里插入图片描述

例子

打印1-10

#include <stdio.h>
int main()
{
 int i = 1;
 while(i<=10)
 {
 printf("%d ", i);
 i = i+1;
 }
 return 0;
}

结果:
在这里插入图片描述
i在每一次循环之后都会增加1,当它超过10之后就会跳出该循环语句。

应用continue

看一下这个代码,与上面执行有什么不同

#include <stdio.h>
int main()
{
 int i = 1;
 while(i<=10)
 {
 if(i == 5)
 continue;
 printf("%d ", i);
 i = i+1;
 }
 return 0;
}

结果:
在这里插入图片描述

当我们i增加到5时,就会执行continue,跳过下面语句,反复如此,所以该循环程序一直在循环,只不过一直执行到continue就跳过,所以没有进行打印大于4的数字,光标会一直闪烁。

应用break

下面代码运行,结果和continue有什么不同呢?

#include <stdio.h>
int main()
{
 int i = 1;
 while(i<=10)
 {
 if(i == 5)
break;
 printf("%d ", i);
 i = i+1;
 }
 return 0;
}

结果:
在这里插入图片描述
看似和continue执行结果一样,但实际上该程序到i等于5已经跳出循环了,与上面continue差别是非常大的,不要被实际打印结果所迷惑,当然,细心的读者就会发现一个会有光标闪烁,一个是没有的。

for语句

语法结构

 for(表达式1; 表达式2; 表达式3)
     循环语句;

表达式1:初始化
表达式2:控制表达式
表达式3:收尾处理

for语句是将初始化,条件判断,迭代更新三个条件放到一起的循环语句,在很多场景下,运用for语句会更加简洁,易读。
在这里插入图片描述

例子

#include <stdio.h>
int main()
{
 int i = 0;
 for(i=1; i<=10; i++)
 {
 printf("%d ", i);
 }
 return 0;
}

结果:
在这里插入图片描述
跟上面while语句执行结果一样,只是换了for语句。

应用continue

跟上面while的continue一样,换了for语句,执行结果一样吗?

#include <stdio.h>
int main()
{
 int i = 0;
 for(i=1; i<=10; i++)
 {
    if(i==5)
    continue;
 printf("%d ", i);
 }
 return 0;
}

结果:
在这里插入图片描述
可以发现,打印结果是1-10中没有5,跟上面结果是不一样的。这是因为当i等于5后,跳过下面的printf语句,之后执行i++(表达式3),所以之后i不等于5,跳过了continue语句,执行后面的语句。(上面while的i++是包含在continue下面语句中的,所以会一直循环)。

应用break

更改continue为break

#include <stdio.h>
int main()
{
 int i = 0;
 for(i=1; i<=10; i++)
 {
    if(i==5)
    break;
 printf("%d ", i);
 }
 return 0;
}

结果:
在这里插入图片描述
结果和while执行的结果是一样的。
实际上,只要将for语句语法和while语句语法的执行逻辑弄懂,是很容易辨别两者的差异的。

for的嵌套

下面代码会打印多少个hehe

#include <stdio.h>
int main()
{
    int i = 0;
    int j = 0;
    for(i=0; i<10; i++)
   {
        for(j=0; j<10; j++)
       {
        printf("hehe\n");
       }
   }
 return 0;
}

结果:
100个hehe
在第一个for中执行第二个for,第二个for需要执行10次才能跳出循环程序,接着第一个for执行第二次循环,第二个for又执行10次循环,以此类推,最终打印了10*10次hehe,也即该嵌套执行了100第二个for循环。

do while语句

语法结构

 do
循环语句;
while(表达式);

do while语句一个特点就是先执行循环程序,再去判断while表达式是否符合要求,所以,无论条件如何,该循环语句至少执行一次
在这里插入图片描述

例子

#include <stdio.h>
int main()
{
 int i = 1;
 do
 {
 printf("%d ", i);
        i=i+1;
 }while(i<=10);
 return 0;
}

结果:
在这里插入图片描述
在很多情况下,do while语句执行情况和while是一致的,所以运用它比较少,
一般都是要在至少执行一次循环状况下用

结尾

对于用哪种循环语句比较合适,要具体问题具体分析,一般来说while和for的运用是同样的结果,主要看你习惯用哪个,当然清楚了解循环语句的逻辑才是最重要的,这样才能在不同状况下将循环语句运用得当。

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诡异森林。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值