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

前言

  前一段时间发表的<【“天才”必经之路】>文章非常热门,虽然我知道它会是一篇成功的文章,但,它的火爆程度还是超出了我的预期。前几日,我写了这个系列的第二篇文章,文章中的故事场景和语法也更加细腻,更能突出主题,但,这也是我删除它的原因。这篇文章写得过于理想化,可能会导致读者朋友无法合理安排时间,比如无法做到“劳逸结合”。我们的生活虽然需要努力,但也要合理休息,调整身体和心理上的放松。这一系列,近期不再出新的作品了,等我有了新的思维突破,能考虑出更多因素的情况下,再写这类型的文章。

正文

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


章节预览:


2. while语句
2.1 while语句用法
2.2 continue用法
2.3 do…while语句用法
目录预览

章节内容:


2. while语句

  while语句是基本循环结构,也是由顶部驱动循环执行,一般用作条件式运算。条件式运算一般按照条件逻辑值执行,比如:a > 0,a < 100,a(a为“真”)等等。

    while语句形式:

        while(表达式) { //形式一
            语句块
        }

    while语句形式:

        while(表达式) //形式二
        {
            语句块
        }

  【例5.4】 计算1-100之间的相加结果。

      int a = 0;
      int sum = 0;
      while (100 > a) {
          sum += ++a;
      }

      示例结果

        sum等于5050。

      示例分析

        表达式 “100 > a”,表示100大于a,如果结果为“真”,执行while语句块内语句,否则跳出while结构并执行while结构之后的语句。


2.1 while语句用法

  while语句表达式用法与if语句表达式相似,同样可以是任意表达式。while语句与if语句不同之处在于——while语句可以循环执行,而if语句只能一次执行。

  【例5.5】 使用随机数生成10以内的数,随机数为2时停止循环。

      bool a = true;
      int N = 0;
      srand((unsigned)time(NULL));
      N = rand() % 10;

      while (a) {
          if (N == 2)
              a = false;
          else
              N = rand() % 10;
       }

      示例分析

        1. 表达式 “a”,如果结果为“真”,执行while语句块内语句。
        2. if语句表达式“N == 2”,如果结果为“真”,a赋值为false,否则N继续获取一个10以内的数。
        3. 跳转到while顶部继续判断表达式“a”,如果结果为“假”, 跳出while结构并执行while结构之后的语句,否则按照1.、2.顺序,继续循环执行。


    上述示例中,通过while结构结合if语句可以容易表达出设计思路。接下来只使用while结构设计,简化循环结构

        int N = 0;
        srand((unsigned)time(NULL));
        N = rand() % 10;

        while (N != 2) {
            N = rand() % 10;
        }

      示例分析

        1. 表达式 “N != 2”,如果结果为“真”,执行语句块内容,N继续获取一个10以内的数,然后跳转到while顶部,继续按这种顺序,循环执行。
        2. 表达式 “N != 2”,如果结果为“假”, 跳出while结构并执行while结构之后的语句。


2.2 continue用法

  部分情况下,循环结构语句块内的条件满足时,可以通过continue语句停止本次执行,进行下一次循环。

  【例5.6】 计算1-100之间的相加结果,并输出结果信息。

      int i = 0;
      int sum = 0;
      while (100 >= i) {
          if (100 > i++) {
              sum += i;
              continue;
          }

          printf(“sum等于%d.”, sum);
      }

      示例结果

        sum等于5050。

      示例分析

        1. 表达式 “100 >= i”,表示100大于等于i,如果结果为“真”,执行while语句块内语句,否则跳出while结构并执行while结构之后的语句。
        2. if语句表达式“100 > i++”,如果结果为“真”,sum加等于i的值,并且通过continue(5)语句,停止本次执行,进行下一次循环。
        3. 输出sum结果信息。

  (5):continue只能用在循环结构中,它即可以在语句块内的分支语句中使用,也可以单独在语句块内使用。

    合理使用continue语句,即可以提高循环结构的执行效率,也可以简化循环结构的语句块代码。


2.3 do…while语句用法

  do…while语句属于底部驱动循环结构,一般用作条件式运算。do…while至少执行一次语句结构。

    do…while语句形式:

        do { //形式一
            语句块
        } while(表达式);

    do…while语句形式:

        do //形式二
        {
            语句块
        } while(表达式);

  【例5.7】 计算1-100之间的相加结果,并输出结果信息。

      int i = 0;
      int sum = 0;

      do
      {
          if (100 > i++) {
              sum += i;
              continue;
          }

          printf(“sum等于%d.”, sum);
      }while (100 >= i);

      示例结果

        sum等于5050。

      示例分析

        首先执行语句块内语句,然后判断表达式“100 >= i”,表示100大于等于i,如果结果为“真”,继续执行do…while语句块内语句,否则跳出do…while结构并执行do…while结构之后的语句。


目录预览


<一起学习C语言:C语言发展历程以及定制学习计划>
<一起学习C语言:初步进入编程世界(一)>
<一起学习C语言:初步进入编程世界(二)>
<一起学习C语言:初步进入编程世界(三)>
<一起学习C语言:C语言数据类型(一)>
<一起学习C语言:C语言数据类型(二)>
<一起学习C语言:C语言数据类型(三)>
<一起学习C语言:C语言基本语法(一)>
<一起学习C语言:C语言基本语法(二)>
<一起学习C语言:C语言基本语法(三)>
<一起学习C语言:C语言基本语法(四)>
<一起学习C语言:C语言基本语法(五)>
<一起学习C语言:C语言循环结构(一)>

发布了111 篇原创文章 · 获赞 720 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/a29562268/article/details/104861360