C语言while和do while循环的用法(附带示例)
在C语言中,循环结构是程序设计不可或缺的一部分,它们允许我们重复执行一段代码,直到满足特定条件为止。while 和 do while 循环是 C 语言中两种常用的循环结构,它们各有特点和适用场景。
while 循环
while 循环是一种前测试循环,意味着它在执行循环体之前先检查条件:如果条件为真(非零),则执行循环体;否则,跳过循环体。while 循环的语法格式如下:
while (条件表达式) { // 循环体 // 执行的语句 }
在 while 循环中,条件表达式会在每次循环开始时被求值,如果表达式结果为真(非零),循环体中的语句将被执行。这个过程会一直重复,直到条件表达式的结果变为假(零)。值得注意的是,如果条件表达式一开始就为假,那么循环体一次都不会执行。
让我们看一个使用 while 循环的例子,这个程序将打印出 1 到 5 的数字:
#include <stdio.h> int main() { int i = 1; while (i <= 5) { printf("%d ", i); i++; } return 0; }
这个程序的输出结果如下:
1 2 3 4 5
在这个例子中,我们初始化变量 i 为 1,然后在 while 循环中检查 i 是否小于或等于 5。只要条件为真,就打印 i 的值并将其增加 1。这个过程会一直持续到 i 变为 6,此时条件不再满足,循环结束。
do while 循环
相比之下,do while 循环是一种后测试循环,它会先执行一次循环体,然后再检查条件:如果条件为真,循环继续;否则,循环结束。do while 循环的语法格式如下:
do { // 循环体 // 执行的语句 } while (条件表达式);
do while 循环的特点是循环体至少会执行一次,因为条件检查是在循环体执行之后进行的,这使得 do while 循环特别适用于那些需要至少执行一次的场景,例如用户输入验证。
让我们用 do while 循环重写前面的例子:
#include <stdio.h> int main() { int i = 1; do { printf("%d ", i); i++; } while (i <= 5); return 0; }
这个程序的输出结果与之前的例子相同:
1 2 3 4 5
虽然在这个简单的例子中,while 和 do while 循环的结果是相同的,但它们的行为在某些情况下会有显著差异。例如,如果我们将初始值改为 6,while 循环将不会执行任何操作,而 do while 循环仍会执行一次循环体。
while 循环和 do while 循环各有其适用场景:
- 当我们需要在执行任何操作之前先检查条件时,while 循环是更好的选择;例如,读取文件内容直到遇到文件末尾。
- 另一方面,当我们需要确保循环体至少执行一次时,do while 循环更为合适;比如,实现一个至少要求用户输入一次的菜单系统。
在使用这两种循环时,我们需要特别注意避免出现无限循环。无限循环通常是由于忘记更新循环控制变量或条件永远不会变为假造成的。为了避免这种情况,我们应该确保循环体中包含能够最终使条件变为假的语句。
此外,我们还可以使用 break 语句在满足某些条件时提前退出循环,或者使用 continue 语句跳过当前迭代的剩余部分直接进入下一次迭代。