携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第18天,点击查看活动详情
while循环的通用形式如下:
while(expression)
statement
statement部分可以是以分号结尾的简单语句,可以是用花括号括起来的复合语句。下面是while的相关。
终止while循环
while循环有一点非常重要:在构建while循环时,必须让测试表达式的值有变化,表达式最终要为假。否则,循环就不会终止(也可以用break和if来终止,后面介绍)。例如下面句子:
index =1;
while(index<5)
printf("Good morning!\n");
上面的程序段将打印无数次Good morning!。因为循环中的index的值都是原来的值1,不曾变过。现在,考虑下面的程序段:
index =1;
while(--index<5)
printf("Good morning!\n");
这样的写法也是不建议的。虽然改变了index的值,但是改错了!但是这个版本至少在index减少到其类型到可容纳的最小负值并变成最大正值时会终止循环。
什么时候终止循环
我们要明确,只有在对测试条件求值时,才决定是终止还是继续循环。例如下面程序:
#include <stdio.h>
void pound(int n);
int main(){
int n=5;
while(n<7) //第7行
{
printf("n=%d\n",n);
n++; //第10行
printf("Now n = %d\n",n);
}
printf("The loop has finished.\n");
return 0;
}
运算结果
在第2次循环时,变量n在在第10行首次获得值7.但是,此时程序并未退出,它结束本次循环,并对第7行的测试条件求值才退出循环。
while:入口条件循环
while循环是使用入口条件的有条件循环。所谓“有条件”指的是语句部分的执行取决于测试表达式描述的条件,例如index<5。该表达式是一个入口条件,因为必须满足条件才能进入循环体。在下面的情况中,就不会进入循环体,因为条件一开始就为假:
index=10;
while(index++<5)
printf("Have a fair day or better.\n");
把index=10; 换成 index=3; 就可以运行循环。