目录

前言:

1.循环语句是什么?

2.while循环语句:

2.1.while循环的语法以及使用

2.2.while循环中的break语句

2.3.while循环中的continue语句

3.for循环

3.1.for循环的语法以及使用

3.2.对比while循环以及for循环

3.3.for循环中的break语句和continue语句

3.4.for循环的一些变种

4.do while 循环

4.1.do while循环语法以及使用

4.2.do while循环中的break语句和continue语句

总结



前言:

c语言中有三种循环语句:while循环、do while循环、for循环,下面我会一一介绍它们的用法和它们各自的特点。


1.循环语句是什么?

学会循环语句我们首先搞明白什么是循环语句。循环语句是用于重复执行某条语句(循环体)的语句,它包含三个部分,分别是初始化部分、判断部分和调整循环部分。C语言提供了3中循环语句,分别为while语句do while语句for语句

举个例子:

只要坚持买彩票和学习我们终会走上人生巅峰,当然这也是我举得不是那么不恰当的例子,图片中的黑线就是我们一直循环的部分,红线蓝线就是终止循环的条件。一个完整的循环语句不仅要有循环判断条件表达式,还要有循环语句。


2.while循环语句:

2.1.while循环的语法以及使用

while循环的语法结构类似选择语句中的if语句。

if(表达式){语句;}//while循环的语法
while(表达式)
{循环语句;
}

注意:当while循环的表达式为真时,程序进入循环体内执行循环体内的语句。

了解了语法结构,下面我来书写一个简单的小程序,通过while循环来打印1-10数字。运行代码如下:

#include<stdio.h>int main()
{int n = 1; //创建一个临时变量来存放打印的值//当表达式为真时才进入循环while (n <= 10){printf("%d ", n);    n++;//调整循环的部分}return 0;
}

倘若没有调整循环的语句(n++),每次都是n=1进入while循环,程序会变成死循环,如下图所示:

while循环中一定要注意在循环体内调整循环的次数。

2.2.while循环中的break语句

在之前的switch语句学习中,我们知道break语句在选择语句是有打破该次语句的意思。在while循环内也是一样,当程序运行到break语句后会结束该次循环。下面我还是以上面代码为例加入break语句。

#include<stdio.h>int main()
{int n = 1; //创建一个临时变量来存放打印的值//当表达式为真时才进入循环while (n <= 10){if (n == 4)break;printf("%d ", n);    n++;//调整循环的部分}return 0;
}

这时为什么屏幕上输出的是1 2 3呢?因为当n=3时n++后,程序进入循环,if(n == 4)语句为真,程序走到break语句的代码行,执行break语句后循环结束,所以屏幕上只会输出1 2 3.

break语句在while循环的作用:

在while循环中,只要遇到break就停止后期的所有的循环,直接终止循环。 所以:while中的break是用于永久终止循环的。

2.3.while循环中的continue语句

首先我给大家出一道题目

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

请问当程序运行时,屏幕上输出的数字什么呢?

1 2 3 4

1 2 3 4 5

1 2 3 4 5 6 7 8 9 10

1 2 3 4 6 7 8 9 10

continue在while循环中的作用:

continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行, 而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。

所以上面的程序当i++的值为5时,if(i == 5)为真,执行continue语句,本次循环结束返回while循环表达式进行判断。此时i依旧=5,又进入if( i ==5)语句中,再次执行continue语句。程序死循环了,所以屏幕上输出的是1 2 3 4


3.for循环

3.1.for循环的语法以及使用

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

{

循环语句;

}

表达式1为初始化部分,用于初始化循环变量的。

表达式2为条件判断部分,用于判断循环时候终止。

表达式3为调整部分,用于循环条件的调整。

下面使用for循环来打印1-10的数字,代码如下

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

下面是运行的结果:

3.2.对比while循环以及for循环

#include<stdio.h>int main()
{int i = 0;//初始化部分;判断部分;调整循环部分for (i = 1; i <= 10; i++){printf("%d ", i);}return 0;
}int main()
{int n = 1; //初始化部分while (n <= 10)//判断部分{printf("%d ", n);    n++;//调整循环的部分}return 0;
}

通过对比我们发现,由于语法问题while循环的三个部分的位置彼此之间并不想连,不方便集中管理和修改。for循环的三个部分相连,语法风格更胜一筹,这就是为什么for循环是最常用的循环语句。

3.3.for循环中的break语句和continue语句

还是和上面while循环代码一样

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

代码运行结果:

break语句在while循环和for循环中的效果是一样的,都是终止其所在循环语句。

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;
}

这里我们可以看到,程序运行结束后并没有像while循环那样进入死循环,而是在屏幕上输出了1 2 3 4 6 7 8 9 10 这九个数。因为当i++ 后i = 5时,进入循环部分后,if(i == 5)为真,执行continue语句,然后不执行continue语句后面的部分,程序又回到 i++,然后程序直到 i <= 10 为假结束循环。所以当continue放在调整循环次数语句后面时,容易造成程序的错误。

3.4.for循环的一些变种

史上最简单for循环
int main()
{for (;;){printf("haha\n");}return 0;
}

for循环的初始化部分、判断部分、调整部分都是可以省略的,但是不建议随意省略,容易造成程序的错误。

当我们运行这个代码:

屏幕上无休止的输出"haha",这是因为我们省略了判断部分,调整部分。

for循环的嵌套

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

运行程序时,本次循环会打印多少次"haha"呢?接下来我们让程序运行起来看看结果:

这里程序从外层循环进入,再通过 外层循环i进入内层循环 j中。0当 i=0 时,程序从外层循环来到 内层循环,进入内层循环后 ,内层循环只有在 j < 10 是终止循环 ,再从内层循环回到外层循环中。外侧循环的第一次循环结束,此时内层循环已经循环了10次 printf("hehe");。所以当外层循环执行完最后一次后,此时程序应该输出100(10 * 10) 次hehe。

如果省略掉初始化部分,下面的程序会打印多少个hehe?

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

下面是代码的运行结果

为什么程序这里只打印了10个hehe呢?

让我们按键盘的f10进行调试,同时在打开监视窗口,打开监视窗口步骤如下:

此时我们对代码进行调试并且监视

下图为第一次执行打印以及j值得变化

下图为来到内循环最后一步

这时我们发现程序只进入了一次内循环,内循环结束后,程序返回外循环,此后程序不再进入内循环进行打印。所以屏幕上只打印了10个hehe 而不是100个hehe。省略初始化会导致程序不受我们的控制,建议不要随意省略for循环的初始化部分。

我们也可以通过多变量来控制for循环

int main()
{int i = 0;int j = 0;for (i = 0, j = 0; i < 2 && j < 5; ++i, j++){printf("hehe\n");}return 0;
}

代码运行结果:

这里因为当循环++i 等于 2时,for循环的判断部分为假,循环结束。所以只会打印两次。

最后我给大家留一道小小的题目,可以在留言区告诉我你的答案。

//请问该循环执行多少次?
#include <stdio.h>
int main()
{int i = 0;int k = 0;for(i =0,k=0; k=0; i++,k++)k++;return 0;
}

4.do while 循环

4.1.do while循环语法以及使用

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

do while循环与while循环的语法类似,不同的是do while循环至少会执行一次循环体内的内容。因此使用场景有限,不是经常被使用。

下面是在屏幕上输出1-10数字,使用do while循环的代码

#include <stdio.h>
int main()
{int i = 1;//初始化部分do{printf("%d ", i);i = i + 1;//调整部分} while (i <= 10);//判断部分return 0;
}

4.2.do while循环中的break语句和continue语句

break语句实现:

#include <stdio.h>
int main()
{int i = 1;do{if (4 == i)//把常量放在前面可以避免出错break;printf("%d ", i);i = i + 1;} while (i <= 10);return 0;
}

continue语句实现:

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

通过代码演示,可以发现do while循环中的continue语句和break语句与while循环中的用法和特点是一样的。


总结

本篇博客依次介绍了while循环、for循环 以及do while循环。循环语句是C语言语法中很重要的一环,看完了本篇博客也许你有些许收获,但是也请你一定要动手敲敲代码,实践是检验所学知识的重要途径。最后祝愿你能学有所成!

C语言——循环语句(详解)相关推荐

  1. c语言输入循环语句,C语言中输入输出和循环语句详解.ppt

    C语言中输入输出和循环语句详解 C语言的输入输和循环分支语句详解 本章主要向大家介绍下C语言的输入和输出功能以及循环分支语句的使用 第4章 顺序结构程序设计 3.1 C语言语句 3.2 赋值语句 3. ...

  2. 单片机c语言常用的语句有几条,单片机C语言常用语句详解

    <单片机C语言常用语句详解>由会员分享,可在线阅读,更多相关<单片机C语言常用语句详解(22页珍藏版)>请在人人文库网上搜索. 1.C51编程中常见语句的总结.首先,C51定义 ...

  3. smarty手册-smarty中foreach循环语句详解

    原文地址:smarty手册-smarty中foreach循环语句详解作者:谭博 {foreach}循环也有自身属性的变量,可以通过{$smarty.foreach.name.property}访问,其 ...

  4. 单片机c语言常用语,单片机C语言常用语句详解

    <单片机C语言常用语句详解>由会员分享,可在线阅读,更多相关<单片机C语言常用语句详解(22页珍藏版)>请在人人文库网上搜索. 1.C51编程常用语句总结,一.C51定义SFR ...

  5. C语言初级篇-----循环语句详解

    目录 循环语句 一.while循环 二.for循环 三.do...while循环 四.循环语句练习 getchar 与 putchar 总结 循环语句  if 语句:当条件满足的情况下,if语句后的语 ...

  6. C语言详解系列——循环语句详解(1)while语句的语法结构

    文章目录 while语句 break continue while语句 之前的学习中我们了解到了if语句的用法,这个语句只会执行一次,但在我们的生活当中有许多事情是需要重复去做的,那我们应该怎么实现呢 ...

  7. C语言详解系列——循环语句详解(3)do while语句的语法结构

    文章目录 do while语句 do while语句中的break和continue break continue do while语句与while语句的不同点 简单练习 do while语句 之前的 ...

  8. C语言详解系列——循环语句详解(2)for语句的语法结构

    文章目录 for语句 break与continue 关于if语句的建议 关于for循环的变种写法 一道笔试题 for语句 在之前的学习中我们已经了解到了循环结构中while语句的用法,那么为什么我们还 ...

  9. python循环语句-详解Python中的循环语句的用法

    一.简介 Python的条件和循环语句,决定了程序的控制流程,体现结构的多样性.须重要理解,if.while.for以及与它们相搭配的 else. elif.break.continue和pass语句 ...

  10. C语言循环结构详解【基础知识点+例子】

    循环结构 for循环 表达式结构: for(表达式1:表达式2:表达式3) {语句: } 表达式1:设置初始条件,只执行一次.可以为零个,一个,多个变量设置初值: 表达式2:是循环条件表达式,用来判断 ...

最新文章

  1. PyTorch 按索引赋值
  2. 专用人格计算机测验题目,《应征入伍公民体格检查心理检测标准(暂行)》
  3. Java中集合中根据对象的某个属性去重
  4. CentOS 6.9配置网卡IP/网关/DNS命令详细介绍及一些常用网络配置命令(转)
  5. 基于事件驱动架构构建微服务第10部分:在docker容器内运行单元测试
  6. [0630]Tyvj 1063 数字串
  7. vue中给window添加滚动监听无效的解决方案
  8. jQuery.validate 中文API
  9. java中将url下载并转换为MultipartFile文件
  10. 质量管理:PDCA循环
  11. armlinux开发板用户自动登录
  12. 2022年信息安全工程师考试知识点:信息安全法律法规
  13. java月利率计算(等额本息贷款)
  14. ES数据的操作(二)
  15. 对称加密php,PHP实现对称加密与解密
  16. Glide 显示圆形头像
  17. 翻新iPad可以购买吗?有什么需要注意的地方
  18. Parallels Desktop 16 网络初始化失败和不能连接USB设备解决方法
  19. PTA 1047 编程团体赛(c语言)
  20. JESD204B 参数理解

热门文章

  1. 独家 | Fomo 3D 沦陷?为何又是 DDoS攻击?来听听区块链安全大牛的深度解析
  2. python- 工作/休息/调休日怎么精准判断
  3. Linux下打开word等office文件(openoffice安装)
  4. mysql今天日期_MySQL获取今天的日期
  5. C++ 次方/次幂函数
  6. 安卓手机拨号键盘隐藏工程代码大全
  7. 用户画像打标签之RFM客户价值分析
  8. 这本书献给所有铸就开源世界的人们
  9. 我是如何在自学编程9个月后找到工作的 1
  10. NO-SQL(非关系型)数据库性能横向比较