黑马程序员——循环结构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流程图

 

 

posted @ 2015-09-23 18:06  gaozp  阅读(299)  评论(0编辑  收藏  举报