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的自增会导致死循环。