用do-while语句构成循环
do-while语句的特点是先执行循环体,然后判断循环条件是否成立。其一般形式为:
do 语句 while (表达式);
它是这样执行的:先执行一次指定的语句(即循环体),然后判别表达式,当表达式的值为非零(“真”) 时,返回重新执行循环体语句,如此反复,直到表达式的值等于0为止,此时循环结束。可以用下图表示其流程。
【例】用do-while语句求1+2+3+…+100。
#include <iostream> using namespace std; int main( ) { int i=1,sum=0; do { sum=sum+i; i++; } while (i<=100); cout<<"sum="<<sum<<endl; return 0; }
可以看到:对同一个问题可以用while语句处理,也可以用do while语句处理。do while语句结构可以转换成while结构。
C++几种循环的比较:
1) for和while以及do while这3种循环都可以用来处理同一问题,一般情况下它们可以互相代替。
2) while和do-while循环,是在while后面指定循环条件的,在循环体中应包含使循环趋于结束的语句(如i++,或i=i+1等)。
for循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环体中的操作全部放到表达式3中。因此for语句的功能更强,凡用while循环能完成的,用for循环都能实现。
3) 用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完成。而for语句可以在表达式1中实现循环变量的初始化。
循环的嵌套
一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多层循环。
3种循环(while循环?do while循环和for循环)可以互相嵌套。例如,下面几种都是合法的形式:
while( ) { while( ) {…} } do { do {…} while( ); }while( ); for(;;) { for(;;) {…} } while( ) { do {…}while( ); } for(;; ) { while( ) {…} } do { for (;;) {…} }while( );