一、问题
C语⾔中有三种循环语句,do...while 语句是其中的⼀个,它的基本格式是怎样的呢?
二、解答
do...while 语句的⼀般形式为:
do语句;while(表达式);
其中语句是循环体,表达式是循环条件。
do...while 语句是这样执⾏的:⾸先执⾏⼀次循环体语句中的内容,然后判断表达式。 当表达式的值为真时,返回重新执⾏循环体语句。循环执⾏,直到表达式的判断为假时⽌,此时循环结束。
例如:
do
i++;
while(i<=100);
在上⾯的代码中,⾸先执⾏ i++的操作,也就是不管 i 是否⼩于 100 都会执⾏⼀次循环体中的内容。然后判断 while 后括号中的内容,如果i⼩于100,则再次执⾏循环语句块中的内容。为假条件时,执⾏下⾯的程序操作。
- 注意:
在使⽤ do...while 语句时,条件要放在 while 关键字后⾯的括号⾥,最后必须加上⼀ 个分号。
while 语句和 do...while 语句⼀般都可以相互改写。例如下⾯的代码。
#include <stdio.h>
int mian()
{int a = 0, n;printf("Input n:\n");scanf("%d", &n);while (n--){printf("%d ", a++ * 2);}
}
转换成 do...while 的形式是:
#include <stdio.h>
int mian()
{int a = 0, n;printf("Input n:\n");scanf("%d", &n);do{printf("%d ", a++ * 2);} while (--n);
}
从代码中可以看出,只是将循环条件改变了,由 n--改为--n,如不改则多执⾏⼀次循环,这是由 do...while 的特点——先执⾏后判断造成的。
三、总结
从上⾯的内容可以了解到 do...while 的基本格式和含义,但对于 do...while 语句还应注意以下⼏点:
(1) do...while 语句也可以组成多重循环,⽽且也可以和 while 语句相互嵌套。
(2)在do 和 while 之间的循环体由多个语句组成时,也必须⽤ { } 括起来,组成⼀个复合语句。
(3) do...while 和 while 语句相互替换时,要注意修改循环控制条件。先执⾏⼀次循环体,再判断条件。