• 黑马程序员——循环结构for,while,do..while


    黑马程序员——循环结构

     

    一、循环结构的概述:在给定条件成立的时候,反复执行程序,直到条件不成立为止。

          循环结构:循环一次又一次的执行相同的代码块

          用while语句

          用do-while语句

          用for语句    

    二、循环结构的组成

          1)循环控制条件

    循环退出的主要依据,来控制循环 到底什么时候退出

          2)循环体

    循环的过程中重复执行的代码块

          3)能够让循环结束的语句(递增、递减、真、假等)

    能够让循环条件为假的依据,否则退出循环

     

    **While循环结构介绍及格式**

    1、while循环的格式

          while(条件表达式){

    语句1;

    语句2;

    。。。

    }

          如果表达式为真,则执行语句

          循环结构:当条件满足的时候,程序会重复执行代码块。

          构成循环结构的条件:1)循环控制条件2)循环体3)让循环控制条件为假的控制

               #include "stdio.h"

    void main()

    {

           int i=1;

           //循环控制条件

           while(i<=10){

                  //循环体

                  printf("hello\n");

                  //能够让循环控制条件为假,从而不导致死循环

                  i=i+1;

                  } 

    }

    2、          while循环的陷阱

    死循环:一直执行循环体中代码,不会退出

    while(条件)    条件一直为真

    练习:计算1+2+3+……+100的和

    #include <stdio.h>

    void main()

    {

           //定义变量i与sum.

        int i=1,sum=0;

        while(i<=100){

              //用sum的值加i的值

              sum=sum+i;

              //i的自增

              i++;

        }

        printf("1+2+3+...+100=%d\n",sum);

        return 0;

    }

    3、           

    1)死循环:任何数值都有真假性

    while(-1)    死循环

    2)当一个变量与一个常量进行==或!=的时候,通常把常量写在前面

       int num=3;

       while(3==num){}

    3)while后如果只有一条语句它可以省略大括号

       1、空语句它是一条语句

       2、while小括号后面不可以直接写分号

     4)作用域:内部代码块中定义的变量不可以在外边代码中访问

     5)作用域紊乱

        while(1<3)

           int num=5

    **do-while循环结构介绍及格式**

    1、          do-while循环结构

     do{

    语句2;

    语句1;

    }while(条件);


          
    与while的区别}while(条件);

    当型循环:当条件满足的时候,再去执行循环体

    直到型循环:先执行循环体,然后判断条件,直到条件为假就结束

    **while与do-while对比**

    #include "stdio.h"

    void main()

    {

           while(i<=3){

                  printf("while:第%d次我爱你\n",i);

                  i++;

                  }

           do{

                  printf("do-while:第%d次我爱你\n",i);

                  i++;

           }while(i<=3);

           return 0;

    }

    1)          当循环控制条件第一次判断不为假的时候:while和do-while执行的次数相同

    2)          当循环控制条件第一次判断为假的时候:while循环体执行0次,do-while执行1次

    **for循环结构介绍及格式**

    for(表达式1;表达式2;表达式3){语句;}

    执行过程:1)先求解表达式1。

    2)求解表达式2,若其值为“真”,,则执行for语句中指定的内嵌语句,然后执行第(3)步,若为“假”,则结束循环转到第(5)步。

    3)求解表达式3

    4)转回上面第(2)步骤继续进行

    5)循环结束,执行for语句下面的语句

               /* 循环打印我爱你10次 */

    #include "stdio.h"

    void main()

    {

           //循环控制条件:i<10

           //循环体:printf("第%d次说我爱你\n",i+1);

           //能够让控制一傲剑为假的操作:i+1

           int i=0;

      for(i;i<10;i++){

         printf("第%d次说我爱你\n",i+1);

         }

    }

    注意:初始化语句只会被执行一次

    表达式省略(三个表达式都可以省略)

    for(;;)语句相当于while(1)

    **循环的嵌套**

    几种合法的形式

    (1)while(){

          while(){}

    }

    (2)do{

    do{}while()

    }while()

    (3)for(;;){

       for(;;){}

    }

    (4)while(){

    do{}while();

    }

    (5)for(;;){

    while(){}

    }

    (6)do{

    for(;;){}

    }while();

    几种循环的比较

          1、在while循环和do…while循环中,只在while后面的括号内指定循环条件,因此为了使循环能正常结束,应在循环体中包含使循环趋于结束的语句(如i++或i=i+1等)

    2、for循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环体中的操作全部放到表达式3中。因此for语句的功能更强,凡用while循环能完成的,用for都能实现

    3、用while和do…while循环时,循环变量初始化的操作在while和do…while语句之前完成。而for语句可以在表达式1中实现循环变量的初始化

    whlie的N-S流程图

    for的N-S流程图

    do...while的N-S流程图

  • 相关阅读:
    571B. Minimization(Codeforces Round #317)
    java的死锁学习
    算法——大整数乘法
    从头认识java-15.7 Map(3)-介绍HashMap的工作原理-get方法
    软硬件之共生之道——一千零一夜的启发
    Java系列之JNDI
    the solution of CountNonDivisible by Codility
    qml
    日历日历日历
    项目总结——传说中的反射居然是这个样子
  • 原文地址:https://www.cnblogs.com/gaozp/p/4832997.html
Copyright © 2020-2023  润新知