C编程从入门到实践
上QQ阅读APP看书,第一时间看更新

7.3.3 do…while语句

do…while语句可以在指定条件为真时不断执行一个语句块。do…while语句会在每次循环结束后检测条件,而不像for语句或while语句那样在开始前进行检测。使用do…while语句的格式如下。

    do
    语句
    while(表达式);

上述格式与while循环的不同点在于,do…while先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。所以do…while循环至少要执行一次循环语句。其执行过程如图7-18所示。

图7-18 do…while语句的执行过程

通过如下代码也可以计算整数1~100的和。

    int main(void)
    {
        int i, sum=0;
        i=1;
        do
              {
                sum=sum+i;
                i++;
              }
          while(i<=100)
          printf("%d\n", sum);
    }

在使用do…while语句时,它除了有和while循环相同的注意事项之外,还需要注意如下两点。

(1)do…while先执行循环体中的语句,然后再判断条件是否为真,如果为真则继续循环;如果为假,则终止循环。

(2)while语句后面必须有一个分号。

实例7-8

猜数游戏

源码路径daima\7\7-8

本实例的功能是预先设置一个数字,然后提示用户去猜,并根据用户猜的数字输出对应的提示。本实例的实现文件为“dowhile.c”,具体实现代码如下。

    #include<stdio.h>
    int main(void){
    int number=5, guess;            //设置正确的数字是5
      printf ("guess a Digit 1-10 \n");
      do
      {
              printf("num:");
              scanf("%d", &guess);
              if (guess > number)        //如果大于5
                  printf("smalle\n");  //提示小一点
              else if (guess < number)  //如果小于5
                  printf("big\n");      //提示大一点
          } while (guess ! = number);
          printf("right! is%d\n", number);
    }

拓展范例及视频二维码

范例7-8-01:加密和解密

源码路径:演练范例\7-8-01\

范例7-8-02:逆序输出整数

源码路径:演练范例\7-8-02\

程序执行后先在界面中提示用户输入1~10的1个数字,输入1个数字并按Enter键后将在界面中显示对应的提示,如图7-19所示。

图7-19 执行效果