文档章节

C primer plus 第5章 运算符、表达式和语句 5.1循环简价

idreamo
 idreamo
发布于 2016/05/17 06:10
字数 666
阅读 32
收藏 0

5.1 循环简介

程序清单5.1显示了一个示例程序,该程序做了一点运算来计算穿9码鞋(男人的)脚用英寸表示的长度。为了增加您对循环的理解,程序的第1版演示了不使用循环编程的局限性。

程序清单5.1

/*shoes.c--把一双鞋的鞋码转换成英寸*/
#include <stdio.h>
#define ADJUST 7.64
#define SCALE 0.325

int main()
{
    double shoe,foot;
    shoe=9.0;
    foot=SCALE*shoe+ADJUST;
    printf("Shoe size(men's) foot length\n");
    printf("%10.1f %15.2f inches\n",shoe,foot);
    return 0;
}

该程序假设您穿9码鞋,然后告诉您用英寸表示您的脚是多长。

程序清单5.2给出了使用while循环改进后的方法。

/*shoes2.c--计算多个鞋码对的英寸长度*/
#include <stdio.h>
#define ADJUST 7.64
#define SCALE 0.325
int main()
{
    double shoe,foot;
    printf("Shoe size(men's)foot length\n");
    shoe=3.0;
    while(shoe<18.5)    //while循环开始
    {                   //代码块开始
        foot=SCALE*shoe+ADJUST;
        printf("%10.1f %15.2f inches\n",shoe,foot);
        shoe=shoe+1.0;
    }                   //代码块结束
    printf("If the shoe fits,wear it.\n);
    return 0;
} 

解释一下while循环是如何工作的?

当程序第一次到达while语句时,检查圆括号内的条件是否为真。在这例子中,条件表达式是shoe<18.5。

shoe被初始化为3.0,它当然为真。最后一个语句shoe增加1.0,使shoe变成4.0.

此时,程序返回while部分去检查条件。为什么在这点呢?因为后面是一个结束花括号(}),而代码使用一对花括号来标出while循环的范围。在两个花括号之间的语句是被重复执行的语句。花括号和花括号里的程序部分被称为一个代码块。现在回到程序,值4小于18.5,所以跟在while后的被括起来的全部命令(代码块)将被重复执行(在计算机语句中,称程序“循环”执行这些语句),这个重复过程一直继续,直到shoe的值达到19.

    因为此时19不再小18.5,所以shoe<18.5现在就变成了假。

    因面控制转到紧跟while循环的第一个语句。在此例中,转到最后的printf()语句。

© 著作权归作者所有

共有 人打赏支持
idreamo
粉丝 16
博文 139
码字总数 224743
作品 0
青岛
产品经理
私信 提问
C Primer Plus 第5章 运算符、表达式和语句 5.4 表达式和语句

5.4.1 表达式 表达式是由运算符和操作数组合构成的。最简单的表达式是一个单独的操作数,以此作为基础可以建立复杂的表达式。 每一个表达式都有一个值 C的一个重要属性是每一个C表达式都有一...

idreamo
2016/05/20
46
0
第5章 Kotlin语言基础 《Kotin 编程思想·实战》

第5章 Kotlin语言基础 5.1 基础语法 5.1.1 包(package): package打包与import导包 5.1.2 变量 5.1.3 表达式 5.1.4 代码块 5.1.5 分支控制流 5.1.6 循环 5.1.7 代码注释 5.1.8 异常 5.2 标识...

程序员诗人
2017/06/04
0
0
【C++】第5章 循环和关系表达式 知识总结

《C++ Primer Plus》第5章知识点总结 for循环 for(initialization; test-expression; update-expression) body 语句:age = 100; 表达式:age = 100 对于 for( int i=0 ;i<5 ;i++),这种语句......

qq_37792173
2017/09/26
0
0
C Primer Plus 第6章 C控制语句:循环 6.5 for循环

for 循环把所有这三种动作(初始化、测试、更新)都放在一起。通过使用for循环,您可以用程序清单6.11中的程序来代替前一个程序 。 程序清单6.11 sweetie2.c 在关键字for之后的圆括号中包含了...

idreamo
2016/05/31
16
0
【C++】第6章 分支语句和逻辑运算符 知识总结

《C++ Primer Plus》第6章知识点总结 简单的知识不再进行赘述 逻辑表达式 逻辑OR运算符:|| 5>3 || 5>10 如果||左边表达式为1,则程序不计算右边表达式 逻辑AND运算符:&& 5>3 && 5>10 如果&...

qq_37792173
2017/09/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

TiDB EcoSystem Tools 原理解读(一):TiDB-Binlog 架构演进与实现原理

简介 TiDB-Binlog 组件用于收集 TiDB 的 binlog,并提供实时备份和同步功能。该组件在功能上类似于 MySQL 的主从复制,MySQL 的主从复制依赖于记录的 binlog 文件,TiDB-Binlog 组件也是如此...

TiDB
17分钟前
0
0
Confluence 6 文档主题合并问答

在 Confluence 官方 前期发布的消息 中,文档主题在 Confluence 6.0 及其后续版本中已经不可用。我们知道你可能对这个有很多好好奇的问题,因此我们在这里设置了一个问答用于帮助你将这个主题...

honeymose
20分钟前
0
0
sparkCore-RDD详解

1.1 什么是RDD 1.1.1 产生背景 当初设计RDD主要是为了解决三个问题: Fast: Spark之前的Hadoop用的是MapReduce的编程模型,没有很好的利用分布式内存系统,中间结果都需要保存到external di...

freeli
21分钟前
0
0
walle的试用和结合vagrant

walle Vagrant 入门指南

miaojiangmin
23分钟前
0
0
python popen.stdout.read阻塞 解决办法

需求:利用python的subprocess模块结合logging模块实现监控子程序运行情况 代码如下(程序阻塞在stdout.readz这里,日志里找不到hang on...................): import osimport sysimpor...

fang_faye
24分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部