清华大学出版社 TSINGHUA UNIVERSITY PRESS 循环体语句 循环体语句 非0(真) 表达式> 当表达式值为真 0(假) 图63
图6.3
清华大学出版社 TSINGHUA UNIVERSITY PRESS 100 例6用 do while语句求∑q 先画出流程图,见图6.4。 语句 sum=sum i=i+1 表达式、0(假 um=sum+ 真 =i+1 非0(真) i≤100 直到>100 语句 图6.4 图6.5
例6.3用do while语句求∑n。 先画出流程图,见图6.4。 图6.4 图6.5 100 n=1
清华大学出版社 TSINGHUA UNIVERSITY PRESS 程序如下: maino inti, sum=0 do isum=sum+i; i++ while( i<=100); printf("%od", sum)
程序如下: main() { int i,sum=0; i=1; do {sum=sum+i; i++; } while( i<=100); printf("%d",sum); }
清华大学出版社 TSINGHUA UNIVERSITY PRESS 可以看到:对同一个问题可以用 while语句处理,也 可以用do-whe语句处理。D0-whe语句结构可以 转换成 whiles结构。图63可以改画成图65形式, 者完全等价。而图65中线框部分就是一个 whiles结 构。可见, do-while结构是由一个语句加一个 while 结构构成的。若图6.1中表达式值为真,则图6.1也 与图65等价(因为都要先执行一次语句) 在一般情况下,用 while语句和用do-whle语句处理同 问题时,若二者的循环体部分是一样的,它们的 结果也一样。如例6.2和例63程序中的循环体是相 同的,得到结果也相同。但是如果whe后面的表达 式一开始就为假(0值)时,两种循环的结果是不同的
可以看到:对同一个问题可以用while语句处理,也 可以用do-while语句处理。Do-while语句结构可以 转换成while结构。图6.3可以改画成图6.5形式,二 者完全等价。而图6.5中线框部分就是一个while结 构。可见,do-while结构是由一个语句加一个while 结构构成的。若图6.1中表达式值为真,则图6.1也 与图6.5等价(因为都要先执行一次语句)。 在一般情况下,用while语句和用do-while语句处理同 一问题时,若二者的循环体部分是一样的,它们的 结果也一样。如例6.2和例6.3程序中的循环体是相 同的,得到结果也相同。但是如果while后面的表达 式一开始就为假(0值)时,两种循环的结果是不同的
清华大学出版社 TSINGHUA UNIVERSITY PRESS 例64 while和 Ido-while'循环的比较。 (1)main( (2)main( Rint sum=0, i; int sum=0, i; scanf(“%d”,di); scanf("%d",&i): while (i<=10 do sum-sumfI sum=sum十; i++; i++ 3 while(i<=10) printf(“sum=%d”,sum); printi(“sum=%d”,sum)
例6.4while和do-while循环的比较。 (1) main ( ) (2) main( ) {int sum=0,i; {int sum=0,i; scanf(“%d”,&i); scanf("%d",&i); while (i<=10) do {sum=sum+i; {sum=sum+i; i++; i++; } } while (i<=10) printf(“sum=%d”,sum); printf(“sum=%d”,sum); } }