清华大学出版社 TSINGHUA UNIVERSITY PRESS 循环体语句 循环体语句 非0(真) 表达式 当表达式值为真 0(假) (a) (b) 图6.3
图6.3
清华大学出版社 TSINGHUA UNIVERSITY PRESS 100 例6.3用do while语句求∑是g 先画出流程图,见图6.4。 语句 sum=sumi i=i+1 i=1 表达式 0(假〉 sum=sumi 真 i=i+1 非0(真) 100 直到i>100 语句 假 (a) (b) 图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; i=1; do {sum=sum+i; i++; } while( ik=100); printf("%d",sum);
程序如下: main() { int i,sum=0; i=1; do {sum=sum+i; i++; } while( i<=100); printf("%d",sum); }
清华大学出版社 TSINGHUA UNIVERSITY PRESS 可以看到:对同一个问题可以用whilei语句处理,也 可以用do-whilei语句处理。Do-while语句结构可以 转换成while结构。图6.3可以改画成图6.5形式,二 者完全等价。而图6.5中线框部分就是一个while结 构。可见,do-whiles结构是由一个语句加一个while 结构构成的。若图6.1中表达式值为真,则图6.1也 与图6.5等价(因为都要先执行一次语句)。 在一般情况下,用while语句和用do-while语句处理同 一问题时,若二者的循环体部分是一样的,它们的 结果也一样。如例6.2和例6.3程序中的循环体是相 同的,得到结果也相同。但是如果while后面的表达 式一开始就为假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 例6.4 while和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++; 3 while (i<=10) printf(“sum=%d”,sum); printf("sum=%d",sum); 3
例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); } }