while 循环

只要控制表达式为 true,while 循环就会反复地执行语句:

while (表达式)语句

先计算循环条件(也就是控制表达式)。如果为 true,就执行循环体,然后再次计算控制表达式。如果控制表达式为 false,程序跳过循环体,而去执行循环体后面的语句。

从语法上讲,循环体只有一条语句组成。如果需要执行多条语句时,可以使用语句块把它们组合在一起。例 1 展示了一个简单的 while 循环,整数逆序。

【例1】一个while循环 (整数逆序):

// 输入一个整数,输出该数的逆序
#include <stdio.h>int main()
{int x;scanf("%d", &x);int digit;int ret = 0;while ( x> 0 ) {digit = x%10;printf("%d", digit);ret = ret*10 + digit;// printf("x=%d,digit=%d,ret=%d\n", x, digit, ret);x /= 10;}// printf("%d", ret);return 0;
}

while 循环流程图:

do…while 循环

do…while 循环是一种底部驱动的循环:

do 语句 while (表达式)

在控制表达式被第一次计算之前,循环体语句会首先被执行一次。与 while 和 for 循环不同,do…while 循环会确保循环体语句至少执行一次。如果控制表达式的值为 true,那么另一次循环就会继续;如果是 false,则循环结束。

例 2 展示了一个do… while 循环,数位数。

【例2】一个do… while 循环(数位数):

//输入一个整数,输出该数的位数
#include<stdio.h>
int main()
{int x;int n=0;scanf("%d",&x);do {n++;x /= 10;}while( x> 0 ); printf("%d\n",n) ;return 0;}

do…while 循环流程图

for 循环

和 while 一样,for 循环也是一个顶部驱动的循环,但是它包含了更多的循环逻辑,如下所示:

for ( [表达式1] ; [表达式2] ; [表达式3] )
语句

在一个典型的 for 循环中,在循环体顶部,下述三个动作需要执行:

(1) 表达式 1:初始化
只计算一次。在计算控制表达式之前,先计算一次表达式 1,以进行必要的初始化,后面不再计算它。

(2) 表达式 2:控制表达式
每轮循环前都要计算控制表达式,以判断是否需要继续本轮循环。当控制表达式的结果为 false,结束循环。

(3) 表达式 3:调节器
调节器(例如计数器自增)在每轮循环结束后且表达式 2 计算前执行。即,在运行了调节器后,执行表达式 2,以进行判断。

例 3 展示了一个 for 循环,计算一个数的 n! 。

【例3】一个for 循环:

#include<stdio.h>
int main()
{int n;scanf("%d",&n);int fact = 1;int i = 1;for ( i=1; i<=n; i++){fact *=i;}printf("%d!=%d\n",n,fact);return 0;}

for 循环的流程图:

for 循环中的每一个表达式都是可以省略的,for ( ; 条件 ; ) == while ( 条件 )。
例3 中的循环:

for ( i=1; i<=n; i++){fact *=i;}

可以改写为 while 循环 如下所示;

int i = 1;
while ( i<=n ){fact *=n;i++;
}

Tips for loops

  • 如果有固定次数用 for
  • 必须执行一次用 do…while
  • 其他情况用 while

C语言循环结构(while循环,do...while循环,for循环)相关推荐

  1. C#编程入门第四课,异常,switch-case选择结构,循环结构 while,break作用,do-while循环

    C#编程入门第四课 文章目录 C#编程入门第四课 1.异常 2. switch- case选择结构 3. 循环结构 while 4. break 作用 5. do-while循环 1.异常 那行代码有 ...

  2. c语言循环结构程序设计视频,第13讲:循环结构程序设计1

    C语言是计算机科学及应用专业的一门重要的专业基础 课,也是全校各 个专业的公共必修课程.它既可以为其它专业课程奠定程序设计的基础,又可以作为其它专业课程的程序设计的工具. 通过本课程的学习,应掌握计算 ...

  3. C++_选择结构_switch语句_循环结构while_while案例猜数字_do while循环_dowhile案例水仙花数_---C++语言工作笔记017

    跟java一样啊

  4. 1循环结构程序设计-第5关:C循环-寻找完数

    任务描述 本关任务:一个数如果恰好等于它的因子之和,这个数就称为"完数". 例如,6的因子为1.2.3,而6=1+2+3,因此6是"完数". 编程序找出1000 ...

  5. 循环结构作业c语言,c语言循环结构练习题带答案

    c语言循环结构练习题带答案 第5章 循环结构程序设计 5.1 基本知识点 Øwhile语句的使用格式和注意事项 Ødo-while语句的使用格式和注意事项 Øfor语句的使用格式和注意事项 Øbrea ...

  6. c语言 char c1,c2; for (c1='0',C语言-5循环结构(PPT)复习课程.ppt

    C语言-5循环结构(PPT)复习课程.ppt 第五章 循环结构程序设计;课程引入;第五章 循环结构程序设计;5.1 while 语句;例1:求;1. do-while循环语句的形式 do 循环体 wh ...

  7. 一起学习C语言:C语言循环结构(三)

    上一篇 <一起学习C语言:C语言循环结构(二)> 中,我们了解了while.do-while语法和continue语句的应用场景.本篇文章中,我们分析循环结构嵌套使用,并通过几个示例分析c ...

  8. 一起学习C语言:C语言循环结构(二)

    前言: 前一段时间发表的<["天才"必经之路]>文章非常热门,虽然我知道它会是一篇成功的文章,但,它的火爆程度还是超出了我的预期.前几日,我写了这个系列的第二篇文章,文 ...

  9. c语言循环的三个要素是什么意思,什么是循环结构知识点详解

    循环结构是程序设计中最能发挥计算机特长的程序结构.那么你对循环结构了解多少呢?以下是由小编整理关于什么是循环结构的内容,希望大家喜欢! 循环结构的简介 循环结构可以看成是一个条件判断语句和一个向回转向 ...

  10. c语言循环程序模板,循环结构程序设计C语言程序

    循环结构程序设计C语言程序Tag内容描述: 1.第5章 循环结构程序设计,C 语言程序设计,北京航空航天大学 交通科学与工程学院 徐国艳,2019/7/12,2,循环的基本概念 不同形式的循环控制 多 ...

最新文章

  1. IT绩效管理消除IT与业务之间的隔阂
  2. 用PyTorch实现的李沐《动手学深度学习》,登上GitHub热榜,获得700+星
  3. Java JSON 之 Xml 转 JSON 字符串
  4. C++ 方块游戏小更新
  5. poj 2914(stoer_wanger算法求全局最小割)
  6. 信息学奥赛一本通 1017:浮点型数据类型存储空间大小 | OpenJudge NOI 1.2 02
  7. 有mysql的虚拟主机吗,虚拟主机能用mysql么
  8. laravel框架常用目录路径
  9. 深度揭秘阿里云 Serverless Kubernetes
  10. numpy 矩阵 秩_大规模电商推荐数据分析-基于矩阵分解的召回
  11. scalar2color
  12. 图像局部特征(四)--FAST-ER角点检测子
  13. 【影像学基本知识】T1, T2 and PD weighted imaging
  14. could not access network location \Hewlett-Packard\\
  15. 1.49万件区块链专利全景:BATJP占26%,游戏类迎突破
  16. 今日更新京东皮卡丘1.7修复链接和预约抢购下单商品,手机端茅台抢购软同步上架(可配备群控使用)
  17. Unity 鼠标进入UI控件,显示控件名称
  18. 用outlook登录163邮箱的超详细教程
  19. 20年intel版mac升级Monterey
  20. 【推荐系统】召回模型线下评价指标

热门文章

  1. 动态权重之多任务不平衡论文 (一)
  2. 四-(对氨基苯基)-卟啉(T4APP);5,10,15,20-四(对氨基苯基)卟啉的聚合膜(PTAPP);四〈N,N_二苯基对氨基)苯基卟啉(TDPaPPH2)齐岳供应
  3. 5,10,15,20-(4-苯酚基)-卟啉TPPOH;meso-四(4-三甲铵基苯基)卟啉TTAP;四-(4-磺酸基苯基)卟啉TPPS4;四-(4-乙晴吡啶基)卟啉(TNAPyP);齐岳供应卟啉系列
  4. android 录音相关资料
  5. python用requests库和xpath爬取站长素材的免费简历模板
  6. 网络工程师必修课之ARP MAC欺骗,交换机静态ARP绑定配置
  7. 等级保护认证费用详细_等保费用标准
  8. 实验:构建第一个Docker镜像
  9. eclipse的mybatis插件MyBatipse详解
  10. java接入秒嘀API实现发送短信功能