当前位置:文档之家› break和continue语句

break和continue语句


一个数n,判断它是否为素数: 一个数 判断它是否为素数: 判断它是否为素数 在2~ n -1范围内判断是否有能够整除它的数就可以了 范围内判断是否有能够整除它的数就可以了
引入变量i,用来取 引入变量 用来取2~n-1范围内的数 用来取 范围内的数 for( i=2;i<=n-1;i++ ) if( n%i==0 ) 所以在执行完循环后要根 据i的值判断是哪种情况 的值判断是哪种情况 退出的循环来决定n是否 为素数: 为素数: if( i==n ) printf(“是素数”); 是素数” ; 是素数 else 退出循环有2种情况: 退出循环有 种情况: 种情况 printf(“不是素数”); 不是素数” ; 不是素数
3、找出2至99之间的全部同构数。同构数是这样一 、找出 至 之间的全部同构数 之间的全部同构数。 组数:它出现在其平方数的右边,例如, 是 组数:它出现在其平方数的右边,例如,5是25 右边的数, 是 右边的数, 和 都是同构数 都是同构数。 右边的数,25是625右边的数,5和25都是同构数。 右边的数
一位数的情况i:1~9 一位数的情况 例:5是25的同构数 是 的同构数 25%10==5 判断条件:(i*i)%10==i 判断条件 两位数的情况i:10~99 两位数的情况 例:25是625的同构数 是 的同构数 625%100==25 判断条件:(i*i)%100==i 判断条件
for(i=2;i<=99;i++) if( i= =(i*i)%10||i==(i*i)%100 ) printf(“%d,”,i);
2、输入n个数,求这n个数中偶数的平均值 、输入 个数,求这 个数中偶数的平均值 个数 源程序: 源程序: main() { int i,n,m,a=0; float s=0; scanf("%d",&n); /********found********/ for(i=1;i<=n;) for(i=1;i<=n) { scanf("%d",&m); if(m%2==0) { a=a+1;s=s+m ; } i++; } printf("%f",s/a);}
break;语句的作用 语句的作用 终止所在的循环结构,继续 终止所在的循环结构 继续 执行该循环结构后的语句
main() { int i; for(i=1;i<=10;i++) { if(i%3==0) continue; printf(“%d,”,i); , } }
continue;语句的作用 语句的作用 终止本次循环,开始新一轮循环 终止本次循环 开始新一轮循环
分子:m=2 分子: 分母: 分母:n=1
源程序: 源程序: #include "stdio.h" main() { float m=2,n=1,sum=0,t; int i=1; for(;i<=20;i++) { sum+=【1】; m/n 【 】 t=m; m=m+n; n=t; } printf("%f",sum);}
第四章 循环结构
4.1 while语句 语句 4.2 do-while语句 语句 4.3 break和continue语句 和 语句 4.4 嵌套循环
4.3 break和continue语句 和 语句
main() {int i, s=0; for (i=1;i<=10;i++) {s=s+i; if(s>=10)break; } printf(“%d”,s); } 结果:10 结果:
程序改错: 程序改错
1、求fibonacci数列的前 个数之和,已知此数列的前2项 、 数列的前30个数之和,已知此数列的前 项 数列的前 个数之和 分别为1。 分别为 。 main() { long f1=1,f2=1,n,s=0; /********found********/ for(n=1;n<=30;n++); for(n=1;n<=30/2;n++) { s=s+f1+f2; f1=f1+f2; f2=f2+f1; } printf("\n%ld",s); }
随机数
(4)分析程序中 分析程序中break语句和 语句和continue语句的执行 分析程序中 语句和 语句的执行 方式有何不同? 方式有何不同? main() { int a; for(a=100;a<=999;a++) { if(a%3==0) break; /*将break改continue*/ 将 改 printf("%d ",a); } }
为了提高运算效率,将取值范围缩小! 为了提高运算效率 将取值范围缩小! 将取值范围缩小 例:判断10是否为素数 判断 是否为素数 判断11是否为素数 判断 是否为素数
n=10:i取值 : 取值 取值2~3
n=11:i取值 : 取值 取值2~3
编程:【8-3】求1+2+3+4+5+·······和值大于 求 和值大于10 编程 和值大于 为止。 语句编写程序。 为止。用break语句编写程序。 语句编写程序
编程:【 】输入一个正整数,判断是否为素数 编程 【8-2】输入一个正整数 判断是否为素数
分析: 分析
什么叫素数? 什么叫素数? 只能被1和它本身整除的数叫素数 不是素数。 和它本身整除的数叫素数,1不是素数 只能被 和它本身整除的数叫素数 不是素数。 例如:2, , , , 例如 ,3,5,7,11…….都为素数 都为素数 判断一个数是否为素数的方法: 判断一个数是否为素数的方法: 判断除了1和本身外 是否还有能整除它的数,如果有 和本身外,是否还有能整除它的数 如果有, 判断除了 和本身外 是否还有能整除它的数 如果有 则不是素数,否则 是素数。 否则,是素数 则不是素数 否则 是素数。
省略表达式2! 省略表达式 !
学习指导第二章Ⅵ编程 学习指导第二章Ⅵ编程9:22页 页 数列的前40个数 已知此数列的前2项分 求fibonacci数列的前 个数 已知此数列的前 项分 数列的前 个数,已知此数列的前 别为1 别为 , 1 , 2 ,3 , 5 , 8 , 13,……
f1=1 f2=1 f1=f1+f2 f2=f2+f1 f1=f1+f2 f2=f2+f1 int f1=1,f2=1; for(i=1;i<=20;i++) { printf(“%d,%d”,f1,f2); f1=f1+f2; f2=f2+f1; }
结果: , , , , , , 结果:1,2,4,5,7,8,10,
总结: 总结:
(1)break语句的形式: 语句的形式: 语句的形式 break; (2)continue语句的形式 语句的形式 continue; break:终止所在的循环结构 转向执行该循环 终止所在的循环结构,转向执行该循环 终止所在的循环结构 结构后面的语句 continue:终止本次循环 开始新一轮的循环 终止本次循环,开始新一轮的循环 终止本次循环
2、输入一个正整数n,输出 、输入一个正整数 ,输出2/1+3/2+5/3+······的前 的前 20项之和,保留 位小数 该序列从第二项起,每 项之和, 位小数(该序列从第二项起 项之和 保留2位小数 该序列从第二项起, 一项的分子是前一项的分子与分母之和, 一项的分子是前一项的分子与分母之和,分母是 前一项的分子) 前一项的分子
程序填空: 程序填空
1、下面程序功能是:输出100~200之间不能被 整除的数。 、下面程序功能是:输出 之间不能被3整除的数 之间不能被 整除的数。 源程序: 源程序: main() { int n; for(n=100;n<=200;n++) { if( 【1】 ) 】 n%3==0 continue; printf("%5d",n); } }
例: main() { int x,y; for(y=1,x=1;y<=50;y++) { if(x>=10) break; ; if(x%2==1) {x+=5;continue;} ; ; x-=3; ; } printf(“x=%d,y=%d\n”,x,y); } 运行结果: 运行结果:x=10,y=6
结构来实现: 用while结构来实现: 结构来实现 #include <stdio.h> main() { int s=0,i=1; while( s<=10 ) { s=s+i; i++; } printf("%d",s); }
结构来实现: 用for结构来实现: 结构来实现
#include <stdio.h> main() { int s=0,i; for( i=1;;i++ ) { s=s+i; if( s>10 ) break; } printf("%d",s); }
【思考题】 思考题】
(1)三种循环的区别? 三种循环的区别? 三种循环的区别 编程时尽量避免用do-while语句 编程时尽量避免用 语句 (2)在哪些条件下能退出循环体? 在哪些条件下能退出循环体? 在哪些条件下能退出循环体 (1)在不满足循环条件的时候 在不满足循环条件的时候 (2)执行了 执行了break;语句 执行了 语句 (3)分析程序的运行结果 分析程序的运行结果 main() { int a,sum; for(a=1;a<=10;a++) sum+=a; printf("%d,%d",sum,a); }
相关主题