zoukankan      html  css  js  c++  java
  • 第五章 循环结构

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

        循环语句有三种:

          while语句

          for语句 无条件循环

          do—while语句 

        C语言中   三种循环结构 本质上都可以相互转换。只有合适的场景下用合适的循

    一.while 循环

      while语句用来实现“当型”循环结构

      格 式:

           

          While(循环结束条件)

          {

            多条语句;

            更改循环变量

          }

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

      说明:

        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);

    二 for循环

      格式: 

                         

          for(循环变量赋初值;循环结束条件;更改循环变量)

          {

            语句块;

          }

          (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循环头中有一个部分缺省

    求一个输入数字的每一个组成数组   for(输入的无需再次赋值;结束条件;)

    如果for循环头三个表达式都为空    while(1) 是一样的

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

    do-while循环

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

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

                         

    循环的嵌套

        在一个循环体内又包含有一个或多个完整的循环结构,  称为循环的嵌套。内嵌的循环中还可以嵌套循环即为多重循环。

      说明  1) 嵌套要完整,不能交叉

           2)并列的循环变量可以同名,  但嵌套的循环变量不允许同名

          3)可以用break语句从内循环跳转到外循环, 但不允许从循环体外跳转到循环体内。

      一般的我们称一层循环的复杂度为n那么双层循环时间复杂度为n^2

    break语句

      格式: break ;

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

    continue语句

      格式: continue ;

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

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

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

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

    break 与 continue 的区别

                                         

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

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

  • 相关阅读:
    Luogu3952 NOIP2017D1T2 时间复杂度
    Luogu4933 大师
    Luogu1966 火柴排队
    Luogu2881 排名的牛Ranking the Cows
    Luogu1439 最长公共子序列(LCS)
    Liferay7 BPM门户开发之20: 理解Asset Framework
    提高Liferay7的启动和运行速度
    liferay中jsonws的认证方法
    让Liferay的Service Builder连接其他数据库
    Liferay表结构介绍(四):Portlet相关表
  • 原文地址:https://www.cnblogs.com/hyt19911004/p/12336397.html
Copyright © 2011-2022 走看看