dowhile语句for语句循环结构的嵌套
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十讲
do-while语句、for 语句 循环结构的嵌套
5.3 用do-while语句构成的循环
由do-while语句构成的循环称 为”直到型”循环,do-while语句 的一般形式为: do 循环体语句 while(表达式);
do-while语句的执行过程是:先执行循环体语 句,再求表达式的值,若表达式的值为 “真”(非0数值)则再执行循环体语句,由此构 成循环,直到表达式的值为“假” (数值0)时 结束循环。如图所示。
人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。
在编写程序时,循环嵌套的书写要采用缩进形 式,如在例5.5的程序中,内循环中的语句应该比 外循环中的语句有规律地向右缩进2~4列。 main ( ) {int i, j; for(i=1; i<=9; i++) { for(j=1; j<= i; j++) printf("%1d*%1d =%2d ", i, j , i*j); printf("\n"); } }
例5.5程序输出的九九乘法表
程序的运行结果为:
1*1= 1 2*1= 2 2*2= 4 3*1= 3 3*2= 6 3*3= 9 4*1= 4 4*2= 8 4*3=12 4*4=16 5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25 6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
条件的描述方法与C语言的do-while语句的 循环条件的测试方法稍有不同。
5.4 for语句和用for语句构成的循环
for语句的一般形式为: for (表达式1;表达式2;表达式3) 循环体语句 for循环语句的执行过程是: (1) 计算”表达式1”的值。 (2) 计算”表达式2”的值; 若其值为非零,转至步骤(3); 若其值为零,则转至步骤(5)。 (3) 执行一次循环体语句。 (4) 计算”表达式3”;然后转向步骤(2),构成循环。 (5) 结束循环,执行for循环之后的语句。
main( ) {float r, s ; for(r=0.5; r<=5.5; r++ ) {s=3.14159*r*r ; printf("r=%f,s=%f\n", r, s); } }
Leabharlann Baidu
5.5 循环结构的嵌套
在一个循环语句的循环体内又完整地包 含了另一个循环语句,称为循环嵌套。
例5.5 循环嵌套的应用--输出九九乘法表。
for语句的非常规使用方法
从语法上来讲,三个表达式都可以是任意合法的C表达式, 各表达式之间用”;”隔开,并且这三个表达式都是任选项。 例如:我们可以用for循环语句将例5.3的程序改写为如下几 种形式,它们都能正确地求出1+2+3+…+100的值。
main() /* /* 程序 3 */ */ 表达式1和表达式3都省掉了! main() 程序 2 表达式1省略了! { int i=1, sum=0; { int i=1, sum=0; for for( (; ; i<=100; i<=100; ) i++) 循环体语句是复合语 {sum= sum= sum sum + + i; i; 句,花括号不能省! i++ ; printf(“sum=%d \n”, sum); } } printf(“sum=%d\n”, sum); }
main() /*程序5 */ 循环体语句是一个空语句! { int i, sum=0; for (i=1; i<=100 ; sum=sum+i++ ); printf(“sum=%d\n”, sum); }
注意在循环体语句之前不能有分号
main() main() { int i, sum=0; { int i, sum=0; for ; i<=100; for (i=1 ; (i=1 i<=100; i++) ; i++) ; sum= +i; sum= sum + isum ; printf("sum=%d\n", printf("sum=%d\n", sum);sum); } /*前面两个程序的执行过程*/ } main() { int i, sum=0; for (i=1 ; i<=100; i++); sum= sum + i ; printf("sum=%d\n", sum); } 即:循环体语句是一个空语句!
例5.4 编程计算多个圆的面积
本例要求计算6个不同半径的圆面积, 且半径值的变化是有规律的,从0.5mm 开始按增1 mm的规律递增,可直接用半 径r作为for语句的循环控制变量,每循 环一次使r的值增1,直到r大于5.5为止。
变量r具有双 重功能,它既 是循环控制变 量,又是圆的 半径值,它的 值由0.5变化到 5.5,循环体共 执行6次,当r 增到6.0时,条 件表达式 r<=5.5的值为 0,从而退出循 环。
for语句的常规使用方法: “表达式1”用来给循环变量赋初值或做一些初始 工作; “表达式2”用来作为判断循环是否结束的条件; “表达式3”用来修改循环变量的值,使得循环能 够趋于结束。
申博 www.sunbet1816.com 申博官网 申博 sunbet官网
for语句的常规使用方法例
“表达式1”是逗号表达式 main() /*程序1 */ 给循环变量赋初值 做一些初始工作,准备累加! { int i, sum; 判断循环是否结束! for (i=1,sum=0; i<=100; i++) sum= sum + i ; printf("sum=%d\n", sum); 使得循环能够趋于结束。 }
注意点:
do-while语句和while语句的区别在于dowhile是先执行循环体语句,后判断循环条件, 因此do-while至少要执行一次循环体。
用do-while语句改写例5.3的程序
题目:求1+2+3+…+100的值
main() { int i, sum; i=1; sum=0; do { sum= sum+i; i++; 这里一定要 }while(i<=100); 有一个分号 printf("sum=%d\n", sum); } 注意:N_S流程图的直到型循环结构的循环
main() /*程序4 */ for语句的非常规使用方法 2 三个表达式都被省掉了! { int i=1, sum=0; 分隔符“ ;”不能省。 for ( ; ; ) {sum= sum + i++ ; 由于没有了表达式2, if i>100 goto pend; 用goto语句结束循环。 } pend: printf(“sum=%d\n”, sum); }