6.8 出口条件循环:do while
C语言出口条件循环(exix-condition loop),即在循环的每次迭代之后检查测试条件,这保证了至少执行循环体中的内容一次。这种循环被称为do while循环。
/* do_while.c -- exit condition loop */
#include
int main(void)
{
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循环也能写出等价的程序,但是长一些。
/* entry.c -- entry condition loop */
#include
int main(void)
{
const int secret_code = 13;
int code_entered;
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("To enter the triskaidekaphobia therapy club,\n");
printf("please enter the secret code number: ");
scanf("%d", &code_entered);
}
printf("Congratulations! You are cured!\n");
return 0;
}
/* 输出:
*/
下面是do while循环的通用形式
do
statement
while ( expression );
statement可以是一条简单语句或复合语句。注意,do while循环以分号结尾。
do while循环在执行完循环体后才执行测试条件,所以至少执行循环体一次,而for循环或while循环都是在执行循环体之前先执行测试条件。do while循环适用于那些至少要迭代一次的循环。
避免是用这种形式的do while结构:
do{
询问用户是否继续
其他行为
} while( 回答是yes );
这样的结构导致用户在回答“no”之后,仍然执行“其他行为”部分,因为测试条件执行晚了。
小结:do while语句
do while语句创建一个循环,在expression为假或0之前重复执行循环体中的内容。