zoukankan      html  css  js  c++  java
  • 黑马程序员——循环结构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流程图

  • 相关阅读:
    Object-C,NSSet,不可变集合
    NYIST 860 又见01背包
    NYIST 1070 诡异的电梯【Ⅰ】
    HDU 1542 Atlantis
    HDU 4756 Install Air Conditioning
    CodeForces 362E Petya and Pipes
    HDU 4751 Divide Groups
    HDU 3081 Marriage Match II
    UVA 11404 Palindromic Subsequence
    UVALIVE 4256 Salesmen
  • 原文地址:https://www.cnblogs.com/gaozp/p/4832997.html
Copyright © 2011-2022 走看看