第五章循环型程序设计 ★概述 C语言可实现循环的语句 ●用goto和if构成循环 ●whle语旬 ●do~ while语旬 ●for语句 ★goto语句及用goto构成循环 心goto语旬一般格式: goto语句标号; 标号:语句;
第五章 循环型程序设计 概述 C语言可实现循环的语句: ⚫用goto 和 if 构成循环 ⚫while 语句 ⚫do ~ while 语句 ⚫for 语句 goto语句及用goto构成循环 ❖goto语句一般格式: goto 语句标号; ….….. 标号:语句;
◆功能:无条件转移语旬 说明 不能用整数作标号 只能出现在goto所在函数内,且唯 ●只能加在可执行语句前面 ●限制使用goto语句
❖功能:无条件转移语句 ❖说明: ⚫不能用整数作标号 ⚫只能出现在goto所在函数内,且唯一 ⚫只能加在可执行语句前面 ⚫限制使用goto语句
例用i和goto语句构成循环,求 C ch5 1. c*/ #include 循环条件 mainO sum=0+1 i int 1, sum=0 sum==1+2=3 循环初值 sum=3+3=6 sum=6+4 loop: if(<=100) um+= sum=4950+100=5050 循环变量增值 1+ 循环终值 goto loop; printf"o 循环体 sun
例 用if 和goto语句构成循环,求 /*ch5_1.c*/ #include main() { int i,sum=0; i=1; loop: if(i<=100) { sum+=i; i++; goto loop; } printf("%d",sum); } sum=0+1 sum==1+2=3 sum=3+3=6 sum=6+4 …… sum=4950+100=5050 循环初值 循环变量增值 循环终值 循环条件 循环体
例从键盘输入一组数据,以0结束输入,求数据和C Ch5 11.c ch5 11.c*/ #include main( int num ber sum=0 ead loop: scanf("%d", &number) if(! number) goto print sum sumt=number goto read loop print sum: printf("The total sum is %d\n", sum)
例 从键盘输入一组数据,以0结束输入,求数据和 /*ch5_11.c*/ #include main() { int number,sum=0; read_loop: scanf("%d",&number); if(!number) goto print_sum; sum+=number; goto read_loop; print_sum: printf("The total sum is %d\n",sum); }
★ while语句 ☆一般形式 while(表达式) 循环体语句; 心执行流程 while 假(0 真(非0) 循环体
while语句 ❖一般形式: while(表达式) 循环体语句; ❖执行流程: expr 循环体 假(0) 真(非0) while
☆特点:先判断表达式,后执行循环体 冷说明: 循环体有可能一次也不执行 ◎循环体可为任意类型语句 ●下列情况。退出 while循环 ◆条件表达式不成立(为零) ◆循环体内遇 break, return,goto 无限循环: while(1) 循环体
❖特点:先判断表达式,后执行循环体 ❖说明: ⚫循环体有可能一次也不执行 ⚫循环体可为任意类型语句 ⚫下列情况,退出while循环 ◆条件表达式不成立(为零) ◆循环体内遇break,return,goto ⚫无限循环: while(1) 循环体;
例用 while循环求 C n=1 Ch5 2.c 半Ch52c* #include 循环条件 main(O int isum=0 循环初值 while(=100) f sum=sum+i; 循环变量增值 循环终值 printf("%d",sum) 循环体
例 用while循环求 /*ch5_2.c*/ #include main() { int i,sum=0; i=1; while(i<=100) { sum=sum+i; i++; } printf("%d",sum); } 循环初值 循环变量增值 循环终值 循环条件 循环体
例显示1~10的平方 Ch521. ch521.c* 运行结果 #include <stdio. h 1*1=1 *2=4 main 3*3=9 int i =1 4*4=16 while(i-10) 5*5=25 i printf("%d*%d=%d\n" i,i, i*i);6*636 1+ 7*7=49 8*8=64 9*9=81 10*10=100
例 显示1~10的平方 /*ch5_21.c*/ #include main() { int i=1; while(i<=10) { printf("%d*%d=%d\n",i,i,i*i); i++; } } 运行结果: 1*1=1 2*2=4 3*3=9 4*4=16 5*5=25 6*6=36 7*7=49 8*8=64 9*9=81 10*10=100
★do~ while语句 般形式 d 循环体语句; hil(表达式); 心执行流程 do 循环体 真(非0) while expr 假(0)
do~while语句 ❖一般形式: do 循环体语句; while(表达式); ❖执行流程: do 循环体 expr 假(0) 真(非0) while
◆特点:先执行循环体,后判断表达式 令说明: ●至少执行一次循环体 ● do while可转化成whle结构 循环体 Whle循环 假(0) expr 真(非0) 循环体
❖特点:先执行循环体,后判断表达式 ❖说明: ⚫至少执行一次循环体 ⚫do~while可转化成while结构 expr 循环体 假(0) 真(非0) 循环体 While循环