位置:首页 > 软件操作教程 > 编程开发 > C语言 > 问题详情

C语言 while循环语句

提问人:刘团圆发布时间:2020-11-30

1.while循环的一般形式

while循环语句的特点是先判断表达式,后执行循环体,其一般形式如下:

while(表达式)

{

    循环语句

}

又分为以下两种情况:

①表达式为循环控制条件,一般是关系表达式或逻辑表达式的形式,例如: 

i<=100

i>=0 && i<-100

循环控制条件也可以是任意合法的C语言表达式,例如:

while (1)

也是合法的。但注意尽量不要这样用,因为可能导致死循环。

②循环语句可以是一条简单语句,也可以是多条语句,如果是一个以上的语句,必须用花括号括起来,以复合语句的形式出现。

例如:

i=l;

while (i<-100)

    putchar ('*');

i++;

    程序的原意是想输出100个'*',但由于循环体没有使用花括号括起来,所以导致系统认为只有“putchar('*');”这一条语句是循环语句,i++;不属于循环体,所以i的值总是为1。那么i永远小于等于100,所以这个循环将永远不结束,是一个死循环。

    循环语句也可以是空语句,例如:

     while (i<10);

    循环体中的空语句可以表示循环不做任何操作,可能只为了消耗CPU的计算时间,也有可能是为了占位暂时使用空语句的形式。

2.while语句的执行过程

    while的执行过程为:计算表达式的值,如果表达式的值为非0,则进入循环,执行循环语句,执行完循环语句后转到循环语句开始处,再次判断表达式的值,如果仍为非0,继续执行循环体,直到循环表达式的值为0,退出循环。

    具体执行流程如图所示。

image.png

关于while循环有以下四点需要注意。 

①循环体有可能一次也不执行,例如:

int i=15; 

while(i<10)

{

    printf("%d",i);

    i++;

}

    程序中,循环条件为K10,当i小于10时,进入循环,而i的初值为15,从一开始就不符合进入循环的条件,所以循环体一次也不执行。

②循环在下列情况将退出循环。

    条件表达式不成立(为0)时。

    在循环体中遇到break、return等语句时。

③避免出现无限循环,又叫死循环,例如:

while (1)

i++;

程序中,条件表达式永远为1,所以循环永远不会结束。

i=15;

while(i>10)

{

    i++;

    printf ("%d",i);

}

    这个程序中,i的初值为15,当进入循环后,执行i++,i的值是不断增大的,所以循环条件i>10永远成立,循环一直执行,构成了死循环

④为了避免出现死循环,循环体中应该有使循环趋近于结束的语句。例如:

int i=l; 

while (i<=10)

{

    printf("%d",i);

    i++;

}

    程序的功能是输出1-10之间的整数,本程序中i的初值为1,符合i<=10条件,循环体中的i++;语句,能使i的值不断增大,执行10次后将使i的值变为11,不再符合i<=10条件,退出循环。


继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部