第六章循环控制 循环控制可用: if语句和goto语句 for语句 while语句 do-while语句
第六章 循环控制 循环控制可用: if 语句和goto语句 for 语句 while 语句 do-while 语句
6-1goto语句构成循环 main( i int i, sum=0 loop:if(i100)∥loop语句标号 i sum=sum + 1++; goto loop ;) printf(>%/od, sum)
6-1 goto语句构成循环 main( ) { int i, sum=0 ; i =1; loop: if ( i<100) // loop 语句标号 { sum = sum +i ; i++; goto loop; } printf(“”%d”, sum); }
注意 不能用整数作为语句标号; 在结构化程序设计中限制使用goto 语句 3.通常使用if语句+goto语句构成 循环结构,且仅用于从循环体中跳转 到循环体外,或者从多层循环的内层 跳转到外层循环的情形。而这种情形 可以用 break和 continue语句代替
注意: • 不能用整数作为语句标号; • 在结构化程序设计中限制使用goto 语句; 3. 通常使用 if 语句 + goto 语句构成 循环结构,且仅用于从循环体中跳转 到循环体外,或者从多层循环的内层 跳转到外层循环的情形。而这种情形 可以用 break 和 continue 语句代替
6-2for语句 一般形式: for(表达式1;表达式2;表达式3)语句 的执行过程是: 1)先求解表达式1 2)求解表达式2,若其值为真(非0),则执行 for内嵌语句,然后求解表达式3; 3)转回求解表达式2,直到其值为假跳出循环
6-2 for 语句 一般形式: for (表达式1 ; 表达式2 ; 表达式3) 语句; 它的执行过程是: 1) 先求解表达式 1 2)求解表达式 2,若其值为真(非0),则执行 for内嵌语句,然后求解表达式3; 3)转回求解表达式 2,直到其值为假,跳出循环
main int i. sum=0 for(i=1;i<100;,i++) sum= sum +1 printf(%od,sum
main( ) { int i, sum=0 ; for( i =1; i<100; i++ ) sum = sum +i ; printf(”%d”, sum); }
for语句说明 1、for语句一般形式中的表达式1可以省略, 但需先为循环变量赋初值,且“;”不能省略 2、表达式2可省略,但循环会无休止地进行 下去,应避免使用,或以其他条件结束循环。 3、表达式3亦可省略,但应设计其他语句以 保证循环正常结束 4、表达式1和表达式3可同时省略,只有表 达式2,但应使用其他语句为循环变量赋初值 并保证循环正常结束
for 语句说明: 1、for 语句一般形式中的表达式1 可以省略, 但需先为循环变量赋初值,且“ ; ” 不能省略。 2、表达式 2 可省略,但循环会无休止地进行 下去,应避免使用,或以其他条件结束循环。 3、表达式 3 亦可省略,但应设计其他语句以 保证循环正常结束。 4、表达式 1 和表达式 3 可同时省略,只有表 达式 2,但应使用其他语句为循环变量赋初值 并保证循环正常结束
for语句说明: 5.3个表达式均可以省略,但会造成无终止 地执行循环体,应避免使用 表达式1可以是设置循环变量初值的赋值 表达式,也可以是与循环变量无关的其他表 达式。 7.表达式既可以是关系表达式或逻辑表达式 也可以是数值表达式或字符表达式,只要其 值为非0,能执行循环体即可
for 语句说明: 5. 3 个表达式均可以省略,但会造成无终止 地执行循环体,应避免使用。 6. 表达式 1 可以是设置循环变量初值的赋值 表达式, 也可以是与循环变量无关的其他表 达式。 7. 表达式既可以是关系表达式或逻辑表达式 也可以是数值表达式或字符表达式, 只要其 值为非 0,能执行循环体即可
请看以下for语句: 表达式1 是 for(i=l, suV, TIVU, ITT 逗号表达式 sum=sum +1 循环空语句 for(if, sum=0: j<100: sum=sum+i + 是从键盘输入一个字符 赋值给c,判是否为回车 不是,则继续循环 for (i=0;(c=getchar()n; I+=c)
请看以下for 语句: for( i =1, sum=0 ; i<100; i++ ) sum = sum +i ; for ( i =1, sum=0 ; i<100 ; sum=sum+i, i++ ) ; for ( i=0; (c=getchar( )) !=’\n’ ; i+=c ) ; 表达式 1 是一个 逗号表达式 循环空语句 是从键盘输入一个字符 赋值给c,判是否为回车 不是,则继续循环
6-3 While、do- While语句 Mhle语句形式: whe(表达式)语句; 执行过程是先判断表达式后执行内嵌语 do-whle语句形式: do语句 while(表达式) 执行过程是先执行内嵌语句,后判断表 达式
6-3 while 、 do-while 语句 while语句形式: while (表达式) 语句; 执行过程是先判断表达式后执行内嵌语 句。 do-while语句形式: do 语句 while(表达式); 执行过程是先执行内嵌语句,后判断表 达式
例输入20个整数,统计其中正数、零和负数的个数。 #include maino fint m, n=1, i=0,j=0, k=0; While(n0)i++; else if(m==0)j++ else k++ n=n+1: printf( InPositive: %2d\zEro: %/6dInNegative: %2d",i,j, k)
例 输入 20 个整数,统计其中正数、零和负数的个数。 #include main() { int m,n=1,i=0,j=0,k=0; while(n0) i++; else if(m==0) j++; else k++; n=n+1; } printf("\nPositive:%2d\nZero:%6d\nNegative:%2d",i,j,k); }