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

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


章节预览:


3. continue和break应用场景
4. 循环结构嵌套
4.1 循环结构嵌套用法
5. 本章总结
目录预览

章节内容:


3. continue和break应用场景

  continue只能在循环结构中使用,而break可以在switch结构和循环结构中使用。
  continue语句用来停止循环结构本次执行,并进入下一次循环,而break语句则是用来终止switch结构或循环结构停止运行,并执行结构之后的代码。

  【例5.8】 生成100次100以内随机数,如果随机数为10,输出随机数相加结果并退出循环结构。

      int i = 0;
      int sum = 0;
      int N = 0;
      srand((unsigned)time(NULL));
      N = rand() % 100;

      do
      {
          if (100 > i++) {
              if (10 != N) {
                  sum += N;
                  N = rand() % 100;
                  continue;
              }
              else {
                  printf(“i等于%d,sum等于%d.”, i, sum);
                  break;
              }
          }
          else
              printf(“i等于%d,sum等于%d.”, i - 1, sum);

      }while (100 >= i);

      示例分析

          1. if语句表达式“100 > i++”,如果结果为“真”,执行if语句块,否则执行else语句,只输出结果。
          2. if语句表达式“10 != N”,如果结果为“真”,首先加上每一次随机数的值,然后重新获取一个100以内的随机数,并且停止本次循环执行,进入下一次循环。如果结果为“假”,输出结果,并终止循环执行,然后执行do…while之后的语句。
          3. do…while语句表达式“100 >= i”,如果结果为“真”,执行语句块,否则停止循环执行,并执行do…while之后的语句。


4. 循环结构嵌套

  一个循环结构内可以内嵌另一个循环结构,内嵌的循环结构内也可以继续内嵌新的循环结构,这种情况一般称作循环结构嵌套。循环结构嵌套没有具体限制,一般根据实际需要做决定。

  【例5.9】 采用左上三角形式,输出九九乘法口诀。

      int i, j;
      for (i = 1;i <= 9;i++) {
          for (j = 1;j <= 9;j++) {
              if (j >= i)
                  printf ("%d*%d=%2d\t", i, j, i * j);
          }
          printf ("\n");
      }

      示例结果
在这里插入图片描述

5-1 左上三角形式乘法口诀

      示例分析

          1. 使用两个for循环结构,结构中的i和j分别表示乘数(行数)和被乘数(行内输出)。
          2. 在内嵌的for循环结构中运算,并且当被乘数大于等于乘数时,输出运算结果。
          3. 每行输出完成后,进行换行。
          4. 运算完成后,生成左上三角形。


4.1 循环结构嵌套用法

  循环结构可以嵌套相同类型的循环结构,也可以嵌套不同类型的循环结构。比如for循环结构内嵌套for循环结构,while循环结构内嵌套for循环结构,do…while循环结构内嵌套while循环结构等,三种循环结构内可以互相嵌套。

  嵌套形式一

      for( ;;) {
          for( ;;) {
              …
          }
      }

  嵌套形式二

      while() {
          for( ;;) {
              …
          }
      }

  嵌套形式三

      do {
          while() {
              …
          }
      } while();

  ……


  【例5.10】 以100次作为一次周期,并在周期内生成100以内随机数,如果随机数为10,输出随机数相加结果,并开始新的循环周期。如果随机数为99,输出总结果,并退出循环结构。

      int once = 0; //一次周期总数
      int sum = 0; //总数
      int i = 0; //一次周期执行的次数
      int N = 0; //随机数
      srand((unsigned)time(NULL));
      N = rand() % 100;

      while (99 != N) {
          for (once = i = 0;i < 100;i++) {
              if (10 != N && 99 != N) {
                  once += N;
                  N = rand() % 100;
                  continue;
              }
              else if (10 == N || 99 == N) {
                  break;
              }
          }
          sum += once;
          printf(“周期内执行%d次,周期总数等于%d.\n”, (i == 100) ? i : i + 1, once);

          if (99 == N)
              printf(“总数等于%d.”, sum);
          else {
              N = rand() % 100;
              if (99 == N)
                  printf(“总数等于%d.”, sum);
          }

      }

      示例结果

在这里插入图片描述](https://img-blog.csdnimg.cn/20200322162645633.png

      示例分析

          1. while语句表达式“99 != N”,如果结果为“真”,执行语句块,否则停止循环执行,并执行while之后的语句。
          2. for循环执行100次,如果执行满100次,或在100次内生成的随机数等于10或99,将停止for循环执行,并继续执行外层的while循环结构。
          3. 输出每个周期执行次数和执行结果。
          4. 如果随机数等于99,输出总数并在下一次判断中,停止循环执行,并执行while之后的语句。否则获取一个新的随机数,如果随机数不等于99,按1.、2.、3.顺序执行。


5. 本章总结

  本章节,我们了解了C语言循环结构和不同控制语句的使用方式,日常编程中,我们需要做到合理设计循环逻辑、正确使用控制语句,这样可以避免结构无限循环、数据异常等问题。本章节内容偏向思路化,需要多次练习才能完全理解。
  实际编程中,循环结构应在必要的情况下使用,能用分支结构代替的情况下,应使用分支结构。


目录预览


<一起学习C语言:C语言发展历程以及定制学习计划>
<一起学习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/105029855