C语言:出口条件循环do while

169 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第23天,点击查看活动详情

do while循环

while循环和for循环都是入口条件循环,即在循环的每次迭代之前检查测试条件,所以有可能根本不执行循环体中的内容。C语言还有出口条件循环,即在循环的每次迭代之后检查测试条件,这保证了至少执行循环体中的内容一次。这种循环体的内容一次。这种循环被称为do while循环。

举个例子

#include <stdio.h>
int main() {
    const int secret_code=13;
    int code_entered;
    do{
        printf("To enter the triskaidekaphobia therapy club,\n");
        printf("please enter the secret code number:");
        scanf("%d",&code_entered);
    }while(code_entered!=secret_code);
    printf("Congratulations! You are cured!\n");
    return 0;
}

相比于while循环,do while循环会更加简洁。

通用循环

do
statement
while(expression);

statement可以是一条简单语句或复合语句。注意,do while循环以分号结尾。循环都是在执行循环体之前先执行测试条件。do while循环适用于那些至少要迭代一次的循环。例如下面是一个do while循环的伪代码:

do{
提示用户输入密码
读取用户输入的密码
}while(用户输入的密码不等于密码);

不要执行这种do while结构:

do{
询问用户是否继续
其他行为
}while(回答是yes);

这样的结构导致用户在回答“no”之后,仍然执行“其他行为”部分,因为测试条件执行晚了。

总结

  • do。while语句创建一个循环,在expression为假或0之前重复执行循环体中的内容。do while语句是一种出口条件循环,即在执行完循环体后才根据测试条件决定是否再次执行循环。因此,该循环至少必须执行一次。statement部分可是一条简单语句或复合语句。

  • 形式:

do
statement
while(expression);

在expression为假或0之前,重复执行statement部分。