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,退出循环。
具体执行流程如图所示。
关于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条件,退出循环。
已有 22658 名学员学习以下课程通过考试
最需教育客户端 软件问题一手掌握
去 App Store 免费下载 iOS 客户端
点击加载更多评论>>