C_基础_第四章 选择、循环结构

一.if语句

  1.单分支结构

    • 格式1:  
       if(<表达式>)语句1; //语句1,
      
          说明:只一条语句。 如果表达式为真, 执行语句1; 否则什么都不做;
      
      格式2: 
      if(<表达式>)
      {
          语句块1;
      
      }

  2. 双分支结构 if… else语句  

    • 格式:
       if (<表达式>)
         语句1;
      else
      
         语句2;
      
      说明: 如果表达式为真, 执行语句1; 否则执行语句2
         else子句是if语句的一部分,它不能作为语句单独使用, 必须与if配对使用。

  3.多分支结构 if … else if 语句

    • 格式:
      
      if()
      {
        语句块1;
      
      }  
      else if()
      {
          语句块2;
      
      }
      …
          else 是不能跟条件的  
      {
          语句块n;
      } 
      
      格式说明
      1.表达式一般为逻辑表达式或关系表达式, 也可以是任意的数值类型。
      2.else子句不能脱离if子句而存在, 下面写法是错误的。

  4.if语句的嵌套

      else与if必须成对出现,  且else总是与最近的一个未配对的 if 配对

                         

      如果 if与else的数目不同, 为实现指定的操作, 可以加花括号来确定配对关系。

                         

      内层的选择结构必须完整地嵌套在外层的选择结构内, 两者不允许交叉。

                                      

  二、switch语句

   也称开关语句。多选一,同多分支类似  但是可读性比多分支强  一般做菜单程序等使用

    • 格式: 
      switch(表达式)
      {
          case 常量表达式1: 语句组1;
              break;
          case 常量表达式2: 语句组2;
              break;
        ……
      case 常量表达式n: 语句组n;
          break;
      default 语句n+1;
      }
      
      说明:各个case包括(default)的出现次序可以任意。在每个case分支都带有break的情况下, case次序不影响执行结果。
       case 和 default的 顺序 可以任意
          不能用浮点型是因为 浮点数不可以用来精确比较

 

三、循环

 

 

循环结构也称重复结构, 是指在程序执行过程中需要反复执行的程序段。

    循环语句有三种:

      while语句

      for语句 无条件循环

      do—while语句

  • while循环

    • 格式

 

image

 

  • 特点: 先判断, 再执行, 有可能一次也不执行。
  • 说明:

    1. 表达式必须用一对圆括号括起来, 如果循环体包含一条以上的语句应用花括号括起来。   

    2. 在循环体内必须修改循环变量的值, 否则死循环。

    3. 在循环体中, 循环变量的值可以被引用、修改,但不能另赋新值。

    4.若表达式只用来表示等于零或不等于零的关系时, 条件表达 式可以简化成如下形式:

       while (x!=0) 可写成 while (x)

      while (x==0) 可写成 while (!x)

    5. 循环体通常是一个复合语句, 但也可以是一个空 语句或单个语句。

      如: 空语句: while (x++<10000) ; //分号不能省

        单语句: x=10 ; while(x-->0)printf(“%d”, x);

  • do-while循环

      do-while语句用来实现“直到型”循环结构

      格式: do 循环体语句 while(<表达式>) ;

image

  • for循环

    • 格式

 

image

 

(1) 省略表达式1, 此时应在for语句之前给循环变量赋初值, 并且分号不能省略。

        如: i=1 ;

             for ( ; i<=100 ; i++)

      (2)省略表达式2, 则认为循环条件始终为真, 程序将陷入死循环。

        如: for( i=1 ; ; i++ ) 

         {

          sum+=i ; if (i>=100) break;

        }

      (3)表达式3可省略, 此时应在循环体内对循环变量进行修改, 以保证循环能正常结束。

         如, 求和运算: for ( i=1 ; i<=100; ) //分号不能省略

                sum+=i++ ; //修改循环变量

  

      (4)三个表达式都省略, 此时应在循环体内对循环变量进行修改, 用break语句终止循环。

           如, 求和运算: i=1 ;

                 for ( ; ; )

                { sum+=i++ ;

                 if ( i >100 ) break ;      }

       (5)表达式1、3都可以有一项或多项, 若有多项则使用逗号表达式。

          如, 求和运算: for ( s=0, i=1 ; i<=100; i++) s+=i ;

                 for (s=0, i=1; i<=100; s+=i, i++) ;

        本质执行顺序是相同的,while循环一般用于不知道循环次数的时候,

        如果使用for循环 也可以做,但是 for( ; ; )会造成for循环头中有一个部分缺省

  • break和contiune

break语句

  格式: break ;

  作用: 提前退出某个循环或跳出switch结构。 退出当前switch语句 退出当前循环(在循环体中break语句与if语句搭配使用)

continue语句

  格式: continue ;

  作用: 结束本次循环, 不在执行continue语句之后的循环体 语句, 使程序回到循环条件, 接着进行下一次是否执行 循环的判定。

  说明: 只能用于循环结构中, 常与if语句联合起来使用, 以便 在满足条件时提前结束本次循环。

  注意: 在while和do-while结构中, 在continue语句被执行 之后立即进行循环条件的测试;

     在for结构中, 表达式 3被执行之后,然后进行循环条件的测试。

  • 循环必须注意:

    1,while循环容易编写出错。两个while循环并列的时候,因为第一个while循环,已经把循环变量给改了,当运行第二个循环的时候,别忘记初始化。
    2,for循环因为第一个表达式就是循环变量初始化的位置,所以程序员不会忘记写,出错几率小一些。同时,我们要记住for循环的执行次序。
    3,三条循环语句可以互相替代使用,但是还是有一些方便性的差别。for循环常用于有明确的开始值和结束值和循环变量的步长。

      while 循环常用于不容易知道开始值和结束值和步长的情况,循环次数是根据中间运算结果决定的。这种情况,有可能一次都不执行,这样的情况。
``      do while 循环常用于不容易知道开始值和结束值和步长的情况,循环次数是根据中间运算结果决定的而且,至少需要先执行一次,这样的情况。
    4,while 和 for 是先判断然后执行的,我们叫他当型循环。do while 是先执行然后判断的,我们叫他直到型循环。

 

posted @ 2020-02-18 20:23  直至成伤  阅读(408)  评论(0)    收藏  举报