携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第15天,点击查看活动详情
while循环
举个例子
#include <stdio.h>
#define ADJUST 7.31 //字符常量
int main(){
const double SCALE = 0.333; //const变量
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.2 inches\n",shoe,foot);
shoe = shoe + 1.0;
} //块结束
printf("If the shoe fits,wear it.\n");
return 0;
}
运行结果
当程序第1次到达while循环时,会检查圆括号中的条件是否为真。该程序中,条件表达式如下:
shoe<18.5
符号< 的意思是小于。变量shoe被初始化为3.0,显然小于18.5。因此,该条件为真,程序进入块中继续执行,把尺码转换成英寸。然后打印计算的结果。下一条语句把shoe增加1.0,使shoe的值为4.0:
shoe = shoe + 1.0; 此时,程序返回while入口部分检查条件。为什么要while的入口部分?因为上面这条语句的下面是右括号( )),代码使用一对花括号({})来标出while循环的范围。花括号之间的内容就是要被重复执行的内容。花括号以及被花括号括起来的部分被称为块。现在,回程序中,因为4小于18.5,所以要重复执行被花括号括起来的所有内容。该循环过程一直持续shoe的值为19.0。此时,由于19.0不小p105于18.5,所以该条件为假:
shoe < 18.5 出现这种情况后,控制转到紧跟while循环后面的第1条语句。该例中,是最后的printf()语句。
增加递增运算符的使用
- 重写例子中的代码
shoe = 3.0;
while(shoe<18.5){
foot = SCALE*shoe+ADJUST;
printf("%10.1f %15.2 inches\n",shoe,foot);
++shoe;
}
- 对它进行缩短
shoe = 2.0;
while(++shoe<18.5){ //shoe递增为3.0,18.5对测试条件求值为真
foot = SCALE*shoe+ADJUST; //执行语句
printf("%10.1f %20.2f inches\n",shoe,foot); //执行语句
}
这样容易把两个过程集中在一个地方。该循环的主要过程是判断是否继续循环,次要过程是改变待测试元素。while循环和递增运算在一起运用,会提高效率。但也要防止计算机进入无限循环。