while循环


while循环与for循环相似,但是功能更少。只要给定条件为truewhile语句就会重复执行。如下代码,while会执行10次:

int n = 0;
while (n < 10) {
    n++;
}

如果给定条件一直为truewhile将无限重复执行(非0为true):

while (1) {
   /* do something */
}

关键字

在C语言中循环语句有两个重要的关键字 - breakcontinue

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


Copyright © learn-c.org. Read our Terms of Use and Privacy Policy