跳到主要内容

循环 while 和 do/while

1. while

只要给定的条件为真,while 循环语句会重复执行其后代码块中的内容。

语法:

while(/*布尔表达式*/)
{
// 如果布尔表达式为真将执行的语句
}

在这里,while 循环的关键点是循环可能一次都不会执行。当条件为 false 时,会跳过循环主体,直接执行紧接着 while 循环的下一条语句。

下面是一个输出 0-10 中偶数的实例:

#include <stdio.h>

int main() {
int count = 0;
while (count < 10) {
// 如果是偶数则输出该数
if (count % 2 == 0)
printf("%d\n", count);
count++;
}
return 0;
}

2. 循环控制语句

在 while 循环中我们可以通过其他语句来控制循环的过程。

C 语言中有以下三个循环控制语句:

控制语句描述
break终止循环或 switch 语句
continue告诉一个循环体立刻停止本次循环,重新开始下次循环
goto将控制转移到被标记的语句,不建议在程序中使用 goto 语句

如果在上面的代码中加入 break,则可以改成如下代码:

#include <stdio.h>

int main() {
int count = 0;
while (1) {
if (count % 2 == 0)
printf("%d\n", count);
count++;
if (count >= 10)
break;
}
return 0;
}

如果在上面的代码中加入 continue,则可以改成如下代码:

#include <stdio.h>

int main() {
int count = 0;
while (count < 10) {
if (count % 2 == 1) {
count++;
continue;
} else
printf("%d\n", count);
count++;
}
return 0;
}

3. do/while 语句

do/while 循环是在循环的尾部检查它的条件。

do/while 循环与 while 循环类似,但是 do/while 循环会确保至少执行一次循环。

语法:

do
{
statement(s);
}while( condition );

将上面的例子改成 do/while 语句后,代码如下:

#include <stdio.h>

int main() {
int count = 0;
do {
if (count % 2 == 0)
printf("%d\n", count);
count++;
} while (count < 10);
return 0;
}

4. 小测试

  • 输入一个整数,计算出该整数的位数。
  • 输入一个整数,逆向输出该数,如输入 123456,反向输出 654321.