第五章循环 【例四】 maino 3、do… while语句循环结 一般形式 int n=0, sum=0 do i do i sumt=n 循环语句(组) ++n; } while(条件表达式) I while(sum<=10000) 用于构成烈 printf(n=%dn”,n); 执行后直到sUm超过 循环,直1000为止 束循环。 n=0. sum=0 【注意】条件表达式或循 SUTEswmtn 直 n=n+1 环体内同样应有改变条件到 当sum未超过1000时 使循环结束的语句,否则型 输出n值 可能陷入“死循环”。 重庆工学院计算机学院基础系 2021年2月20日星期六
第五章 循环程序设计 6 重庆工学院计算机学院 基础系 2021年2月20日星期六 3、do…while语句循环结构 【例四】 main() { int n=0,sum=0; do { sum+=n; ++n; } while (sum<=10000) printf(“n = %d\n”,n); } • 一般形式 do { 循环语句(组) } while (条件表达式); • 用于构成直到型循环:先 执行后判断/条件为真继续 循环,直到条件为假时结 束循环。 • 【注意】条件表达式或循 环体内同样应有改变条件 使循环结束的语句,否则 可能陷入“死循环”。 直 到 型 直到sum超过 10000为止
第五章循环程序设计 3、do… while语句循环结构示例 main( 【例五】从键盘输入一个整数 12456,分析以下程序运行结果 int num. C: 结果: printi(“请输入一个整数:); 65421 scanf(%d, &num) 将各位数字反序显示出来 do i c=num%10 /取得num的个位数 printf( %d, c) /输出num的个位数* I while((num/=10)>0) /直到num/10为0 printf("In); 7重庆工学院计算机学院基础系2021年2月20日星期六
第五章 循环程序设计 7 重庆工学院计算机学院 基础系 2021年2月20日星期六 【例五】从键盘输入一个整数 12456,分析以下程序运行结果。 main() { int num,c; printf(“请输入一个整数:“); scanf(“%d”,&num); do { c=num%10; printf(“%d”,c); } while((num/=10)>0); printf(“\n”); } /*取得num的个位数*/ /*输出num的个位数*/ /*直到num/10为0*/ 结果: 65421 将各位数字反序显示出来 3、do…while语句循环结构 示例
第五章循环程序设计 4、for语句循环结构 例六】 般形式 求∑i=1+2+3+4…+99+100 f(表达式:条件表达式:表达式3)|(=1-100 循环语句(组); 用于构成计数型当型循环:先判断后 执行条件为真继续循环,直到条件为|man0 假时结束循环。 表达式1整个循环中只执行1次,常用inti,s=0; 来对循环变量设置初值 条件表达式(表达式2):其值为真 for(=1<=100;++) (非0)时继续执行循环语句(组), s=StI 否则结束循环 表达式3:常用于循环变量值的更新(循 环体的一部分每次循环语句组执行完 printf(esum=%dn”,s); 后执行一次) 重庆工学院计算机学院基础系 2021年2月20日星期六 返回
第五章 循环程序设计 8 重庆工学院计算机学院 基础系 2021年2月20日星期六 4、for语句循环结构 • 一般形式 – for (表达式1;条件表达式;表达式3) – 循环语句(组); • 用于构成计数型当型循环:先判断后 执行/条件为真继续循环,直到条件为 假时结束循环。 • 表达式1: 整个循环中只执行1次,常用 来对循环变量设置初值 • 条件表达式(表达式2): 其值为真 (非0)时继续执行循环语句(组), 否则结束循环 • 表达式3: 常用于循环变量值的更新(循 环体的一部分每次循环语句组执行完 后执行一次) 【例六】 求∑i =1+2+3+4…+99+100 (i=1~100) main() { int i , s=0; for (i=1;i<=100;i++) s=s+i; printf(“Sum=%d\n”,s); }
第五章循邛 5、其他循环控制结构 a,y, a=10,y=0; break结束循环 do 在swch中退出swch结构 a+=2y/+=a; if(y≈50) break; 在循环中结束循环。 I while(a=14) continue结束本次循环 printf("a=%d, y=%dn, a, y) 循环“短路”(跳过循环体后} 的语句,开始下一轮循环) 变量跟踪 变量跟踪 °goto跳转 a 跳到循环你指定达 0 【注意】 12+2 12+14=26 goto语句只能从循环内向外跳 14+2 16+26=42 转,反之不可!基础系 16+216+42=5 9重庆工学院计算机学院基础系2021年2月20日星期六 回
第五章 循环程序设计 9 重庆工学院计算机学院 基础系 2021年2月20日星期六 5、其他循环控制结构 main( ) { int a,y; a=10,y=0; do { a+=2;y+=a; if (y>50) break; } while (a=14); printf("a=%d,y=%d\n",a,y); } 结果:a=16,y=60 变量跟踪 a y 10 0 12 12 12+2 12+14=26 14+2 16+26=42 16+2 16+42=5 变量跟踪 分析法 • break 结束循环 – 在switch中退出switch结构; – 在循环中结束循环。 • continue 结束本次循环 – 循环“短路”(跳过循环体后面 的语句,开始下一轮循环)。 • goto 跳转 – 跳到循环体外指定标号处。 • 【注意】 – goto 语句只能从循环内向外跳 转 ,反之不可!基础系
求以下程序段执行后x和i的值。 第五章循邛 int iX for(i=1,X=1;<=50;i++) 5、其他循环控制结构 i if (X>=10) break if(X%2=1) break结束循环 {X+=5; 在 switch中退出 switch结构; continue 在循环中结束循环 continue结束本次循环 X=3; 循环“短路”(跳过循环体后 的语句,开始下一轮循环)。 变量跟踪 goto跳转 X 跳到循环体外指定标号处 1-6 6→3 【注意】 3→8 goto语句只能从循环内向外跳 转,反之不可!基础系 23456 5→10 重庆工学院计算机学院基础系 2021年2月20日星期六 回
第五章 循环程序设计 10 重庆工学院计算机学院 基础系 2021年2月20日星期六 5、其他循环控制结构 • break 结束循环 – 在switch中退出switch结构; – 在循环中结束循环。 • continue 结束本次循环 – 循环“短路”(跳过循环体后面 的语句,开始下一轮循环)。 • goto 跳转 – 跳到循环体外指定标号处。 【注意】 – goto 语句只能从循环内向外跳 转 ,反之不可!基础系 求以下程序段执行后x和i的值。 int i,x; for ( i=1,x=1;i<=50;i++) { if (x>=10) break; if (x%2==1) { x+=5; continue; } x-=3; } 结果:x的值为10,i的值为6 变量跟踪 i x 1 1→6 2 6→3 3 3→8 4 8→5 5 5→10 6