黑马程序员技术交流社区

标题: C语言--while与do...while循环控制语句 [打印本页]

作者: Jack-xie    时间: 2014-10-17 09:19
标题: C语言--while与do...while循环控制语句
1、循环控制概述

  循环结构是程序中一种很重要的结构。其特点是,在给定条件成立时,反复执行某程序段,直到
条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。
循环结构简单来说就是:循环是一次又一次的执行相同的代码块

循环的构成:

一般来说一个循环需要以下几部分构成:
1、循环控制条件 循环退出的主要依据,来控制循环到底什么时候退出

2、循环体 循环的过程中重复执行的代码段

3、能够让循环结束的语句(递增、递减、真、假等) 让循环条件为假的依据,退出循环

2、while循环结构

while循环的格式:

while ( 条件 ) {

语句1; 语句2; ....

}

1)while循环的特点:

如果while中的条件一开始就不成立,那么循环体中的语句永远不会被执行

2)while语句的语义是:

如果条件成立,就会执行循环体中的语句(“循环体”就是while后面大括号{}中的内 容)。然后再次判断条件,重复上述过程,直到条件不成立就结束while循环

3、while的使用场景

1)不知道要循环的次数的时候使用最佳 常常妙用死循环

2)在某个范围內查找满足条件的值

4、while循环的注意点

1、任何数值都真假性

        while (-1) {

        printf("死循环\n");

         }

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

        int num = 3;
        while (3 == num) {

        printf("num = %d\n",num);

        num++;

         }

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

        2、空语句它也是一条语句

        3、while小阔号后面不可以直接写分号

        int num = 0;

        while (num < 3);

{
        printf("num = %d\n",num);

        num++;

}

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

while (1 < 3) {

        int a = 0;

         }

        printf("a = %d\n",a);

5、作用域紊乱

        while (1 < 3)

        int num = 5;

6、最简单死循环

        while (1);

5、do...while循环

do ... while循环的基本格式:

        do {

                语句1;

                语句2;

                ……

        }while (条件);

1)do...while语句的语义是:

当执行到do-while循环时,首先会执行一遍循环体中的语句(“循环体”就是do后面大括号{} 中的内容)。接着判断while中的条件,如果条件成立,就执行循环体中的语句。然后再次判 断条件,重复上述过程,直到条件不成立就结束while循环

2)do-while循环的特点:

不管while中的条件是否成立,循环体中的语句至少会被执行一遍

int i=0;

while(i<0){

i++;

}

int i=0;

do{

i++;

} while(i<10);

3)do...while和while的对比

while

是先判断再执行 例:
int
i=10;

while(i<10){

System.err.println(i);

i++;

}

结果是什么都不打印,最终i的值为10

do-while

是先执行再判断

例:

int i=10; do{ System.err.println(i); i++; }while(i<10); 打印的也是10,最终i=11 两者的区别在于第一圈循环时,while是先判断循环条件,再循环.所以第一个程序什么都不打印. 而do-while则是先执行后判断.所以,第二个程序先打印10,然后i++然后跳出循环.

作者: 李欢宇    时间: 2014-10-26 13:41
学习了。
作者: sfm    时间: 2014-11-13 21:10
写的很详细!
作者: mahei521    时间: 2014-11-15 18:12
不错哦!
作者: mahei521    时间: 2014-11-16 21:41
嘿嘿,比书上写的明白,啥时候书上能这样写!
作者: 天空总是很蓝    时间: 2014-11-17 19:39
写得很好,辛苦了
作者: sfm    时间: 2014-11-17 21:43
写的还挺详细,不错,赞一个
作者: 世俗孤岛    时间: 2015-3-2 11:45
详细,可以写个小例子
作者: hxd4241    时间: 2015-3-2 15:32
明白了不少啊
作者: 世俗孤岛    时间: 2015-3-21 08:51
总结的很好啊
作者: yafengxn    时间: 2015-3-22 16:36
不错啊,学习下
作者: 小白一号    时间: 2015-3-22 21:02
技术分都这么多了,应该看到OC都学完了吧,
作者: qq350106106    时间: 2015-5-4 21:49
嗯哪 学习了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2