while循环
while
循环与for循环
相似,但是功能更少。只要给定条件为true
,while
语句就会重复执行。如下代码,while
会执行10次:
int n = 0;
while (n < 10) {
n++;
}
如果给定条件一直为true
,while
将无限重复执行(非0为true
):
while (1) {
/* do something */
}
关键字
在C语言中循环语句有两个重要的关键字 - break
和 continue
。
即使while
给定条件一直为true
,但在循环第10次时遇到break
,循环被终止:
int n = 0;
while (1) {
n++;
if (n == 10) {
break;
}
}
如下代码所示,printf
打印输出被continue
跳过了,只有当n
为偶数时才会打印:
int n = 0;
while (n < 10) {
n++;
/* 检查 n 为奇数 */
if (n % 2 == 1) {
/* 回到循环体起始位置开始执行*/
continue;
}
/* 只有 n 为偶数时才会执行到这里*/
printf("The number %d is even.\n", n);
}
Exercise
array
变量储存了10个数。在while
中你必须写两个if
语句来改变代码的执行顺序(不要修改printf
语句):
- 如果
array[i]
小于5,不打印。 - 如果
array[i]
大于10,不打印,且停止循环。
注意如果用continue
跳过了i
的自增会导致死循环。