C语言的while循环

133 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 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;
}

运行结果

Snipaste_2022-08-12_21-32-04.png

当程序第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循环和递增运算在一起运用,会提高效率。但也要防止计算机进入无限循环