编程能力等级认证 LESSON_10-break和continue关键字(课件)

2025-07-07
| 28页
| 34人阅读
| 0人下载
普通

内容正文:

CCF-GESP C++一级 CCF-GESP C++一级 编程能力等级认证 break和continue关键字 第十课 break和continue关键字 本次课程内容只在考试大纲中有,在往期真题里还没有出现过 2 break关键字 01 01 第一部分是break关键字 3 break:结束、终止。 当break语句出现在循环中,用于终止循环。 游戏中的退出按钮 秒表计时 break终止 知识讲解 break关键字在之前学习分支结构switch时使用过,除了用于结束switch,还可用于结束循环。 Break是终止的意思,可以理解为生活中直接结束,直接退出,例如我们想将执行着的某个任务关闭,点击结束任务,那么这个任务就彻底结束了 4 for(循环变量;循环条件;循环步长){ if(判断条件){ break; } 语句1; } 语句2; break终止 知识讲解 在for循环中使用break语句时通常和if语句一起使用,当满足if语句的条件时,就执行break语句,这样循环结束,不会再执行语句1,而是跳出循环执行语句2 5 #include <iostream> using namespace std; int main(){     for(int i=1;i<=10;i++){ cout<<i<<" ";          if(i==6)          break;           }     return 0; } 以下程序的输出结果是什么( ) 填空题 1 2 3 4 5 1 2 3 4 5 6 1 2 3 4 5 6 7 1 2 3 4 5 7 8 9 10 B 课堂练习 代码的含义是循环1~10之间的数字,输出i值,如果i值为6,那么执行break语句,终止循环,所以会输出1 2 34 5 6,选B 6 特殊求和 【问题描述】 如果一个数能够被7整除或者含有数字7,那么我们称这个数为幻数,比如17,21,73是幻数,而6,59不是。求出1~100(包含1和100)中所有幻数的和,当累加和大于等于1000时停止累加,输出所有满足条件的数字。 【输出描述】 一行,1~100中所有满足条件的数字,使用空格隔开。 【样例输出】 7 14 17 21 27 28 35 37 42 47 49 56 57 63 67 70 71 72 73 74 75 课堂练习 7 for(int i=1; i<=100; i++){ //判断是否能被7整除,或者个位为7 ,或者十位为7 if( || || ) i%7==0 i%10==7 //循环1~100之间的整数 } i/10==7 思路分析 //定义变量sum进行累加 int sum=0; cout<<i<<" "; sum+=i; //如果累加和大于等于1000,终止循环 if(sum>=1000) break; } { 课堂练习 首先要循环1~100之间所有的数字,然后判断数字是否为幻数,判断能否被7整数,也就是对7取余结果为0,含7表示该数字的十位或者个位为7,所以需要将数字的十位和个位上的数字取出来,让这个数对10进行取余,得到的余数就是个位上的数字,判断是否等于7,十位上的数字就是除以10,判断是否为7。这三个条件只要满足其中一个就是幻数,所以三个条件之间是或者的关系。如果这个条件成立,那么就是幻数,输出该数,然后进行累加,定义一个变量sum保存累加和。如果累加和大于等于1000,终止循环 8 写一写 #include <iostream> using namespace std; int main(){     int sum=0;     for(int i=1;i<=100;i++){         if(i%7==0||i%10==7||i/10==7){             cout<<i<<" ";             sum+=i;         }         if(sum>=1000) break;     }     return 0; } 课堂练习 continue关键字 02 02 第二部分是continue关键字 10 下一曲 continue:继续,结束本次循环,进入到下一次循环当中。 continue 知识讲解 continue是继续、跳过的继续,类似于我们听音乐时的下一曲,当按下这个按钮时,当前播放的歌曲就会立刻停止,播放下一首音乐,当在循环中使用continue语句时,会直接结束本次循环,进入到下一次循环当中 11 for(循环变量;循环条件;循环步长){ if(判断条件){ 语句1; continue; } 语句2; } continue语句的作用是跳过本次循环,进入下一次循环。 for(循环变量;循环条件;循环步长){ if(判断条件){ break; } 语句1; } 语句2; break语句的作用是终止整个循环,执行循环后面的语句。 continue和break区别 知识讲解 当时for循环中使用continue语句时,如果if条件成立,就会跳过本次循环,不会再执行语句2,而是改变循环步长,进入下一次循环。 在这里可以比较一下continue和break的区别,continue是语句的作用是跳过本次循环,进入下一次循环,break语句的作用是终止整个循环,执行循环后面的语句 12 (2023年9月)在下面的C++代码中,由于循环中的continue是无条件被执行,因此将导致死循环。 for(int i=1;i<10;i++) continue; 判断题 正确 错误 真题解析 在这个代码示例中,循环将从 i = 1 开始,然后在每次迭代时 continue 将会执行。由于 continue 是无条件的,它会导致当前迭代立刻结束,然后进行下一次迭代。因此,这个循循环实际上会在循环的条件 i < 10 满足时进行9次迭代(i 从 1 到 9),然后在 i 变成 10 时循环终止。所以,这个代码不会导致死循环,它会正常执行,并在 i 到达 10 时退出循循环。 13 #include <iostream> using namespace std; int main(){     for(int i=5;i>=1;i--){         if(i%2==0)             continue;         cout<<i<<" ";     }     return 0; } 以下程序的输出结果是什么( ) 填空题 5 5 4 5 3 1 4 2 C i 输出 5 5 4 过 3 3 2 过 1 1 0 循环结束 课堂练习 此段代码的含义是循环5~1之间的数字,如果i的值能够被2整除,就跳过本次循环,也就是不会输出i,而是进入下一次循环。所以输出5 3 1,选C 14 满足条件的数的累加 【问题描述】 现有n个整数,将其中个位数为k的数进行累加求和。 【输入描述】 第一行两个整数n、k,以空格分隔。(0<n<1000, 0≤k≤9) 第二行n个非负整数,以空格分隔,每个数不大于100000。 【输出描述】 输出满足题目要求的累加和。 【样例输入】 10 7 2 5 7 17 11 18 4 27 1 7 【样例输出】 58 课堂练习 15 【样例输入】 10 7 2 5 7 17 11 18 4 27 1 7 【样例输出】 58 10个整数 个位数为7 满足条件的数的累加 课堂练习 输入的一个整数表示整数的个数有10个,第二个整数表示找到个位数为7的数字 第二行输入10个整数,找到其中个位数为7的数字相加,分别是7 17 27 7,相加得到58,输出结果为58 16 思路分析 int a; for(int i=0;i<n;i++){     cin>>a; } ① 定义变量n,k,输入两个整数 int n,k; cin>>n>>k; ④ 输出累加和 cout<<sum; ② 循环输入n个整数 如果 个位数不为k 过 累加a ③ 累加满足条件的数 if(a%10!=k) continue; sum+=a; int sum=0; 课堂练习 1、定义两个变量nk,输入两个整数 2、使用循环输入n个整数,定义变量a,将输入的整数保存到变量a中 3、在循环中判断输入的数字个位数是否为7,取到一个数字个位数的方式是用该数对10取余,如果结果不为7说明个位数不为7,不需要累加,直接跳过,所以这里使用continue语句跳过本次循环,条件不成立的时候就是个位数为7的数字,此时将数字累加到变量sum中 4、输出累加和sum 17 写一写 #include <iostream> using namespace std; int main(){     int n,k;     cin>>n>>k;     int a;     int sum=0;     for(int i=0;i<n;i++){         cin>>a;         if(a%10!=k) continue;         sum+=a;     }     cout<<sum;     return 0; } 课堂练习 18 格式化输入输出 03 03 第三部分的内容是格式化输入输出 19 scanf() 按规定格式输入内容 scanf("格式字符串",数据1,数据2……) printf() 按规定格式输出内容 printf("格式字符串",数据1,数据2……) printf()和scanf()包含在cstdio文件中,所以必须在程序中先包含该文件 printf()和scanf() printf("%d-%d-%d ",2023,5,1); 占位符 换行符 取地址符 int a; scanf("%d", &a); 占位符 知识讲解 除了使用cin、cout输入输出以外,有时需要按照固定的格式进行输入输出,这时可以使用scanf和printf完成,printf()和scanf()包含在cstdio文件中,所以必须在程序中先包含该文件:#include <cstdio> scanf的输入格式是,第一部分是格式化字符串,使用逗号分隔,接下来是变量名,多个变量名使用逗号分隔,变量名的前面需要使用取地址符& printf的输出格式是,第一部分是格式化字符串,使用对应的数据类型占位符,第二部分是要输出的变量名,多个变量名使用逗号间隔 换行在使用cout输出时是endl,使用printf输出时是使用换行符 整数类型的占位符使用%d表示,%02d表示输出内容的宽度设置为2,如果原宽度比2大,则原数据原样输出,如果原宽度比2小,则填充0后进行输出 20 占位符 占位符 说明 %d 整数int %c 字符char %f 浮点数float %g 浮点数去除小数尾0 %lf 双精度浮点数double %lg 去除双精度浮点数double小数尾0 知识讲解 整数int的占位符是%d,字符char的占位符是%c,浮点数float的占位符是%f,浮点数去除小数尾0使用%g,双精度浮点数double使用%lf,去除双精度浮点数double小数尾0使用%lg 21 修饰符 %02d 设置输出内容宽度 原宽度比2大,则原数据原样输出 原宽度比2小,则填充0后进行输出 设置填充字符 可以在占位符中添加修饰符,进一步修饰格式 知识讲解 整数int的占位符是%d,字符char的占位符是%c,浮点数float的占位符是%f,浮点数去除小数尾0使用%g,双精度浮点数double使用%lf,去除双精度浮点数double小数尾0使用%lg 22 指定小数位数 float b=2.50; printf("%.1f",b); printf("%.2f",b); printf("%.5f",b); 小数点后输出保留2位 小数点后输出保留5位 小数点后输出保留1位 2.5 2.50 2.50000 知识讲解 使用printf输出小数可以指定小数位数,例如有浮点类型变量2.50,小数点后输出保留1位的方式是%.1f,1就代表保留1位,同样的道理如果保留两位小数就写%.2f,保留5位就是%.5f,不够的位数会自动补0 23 例如输入形式为:23-12 23-12 23-12 23:12 23-0 指定输入格式 int a,b;     scanf("%d-%d",&a,&b); printf("%d-%d",a,b); 一定要按照scanf()指定格式输入! 知识讲解 此时scanf中设置输入格式是中间连字符连接,之后进行输出 我们测试23-12,正常打印输出,但是当我们输入23:12后,此时只有第一个变量a能成功接受到数据23,所以一定要按照scanf指定格式输入 24 小玉家的电费 【题目描述】 夏天到了,各家各户的用电量都增加了许多,相应的电费也交的更多了。小玉家今天收到了一份电费通知单。小玉看到上面写,据闽价电 [2006]27规定: 月用电量在150千瓦时及以下部分按每千瓦时 0.4463元执行, 月用电量在151∼400千瓦时的部分按每千瓦时0.4663执行, 月用电量在401千瓦时及以上部分按每千瓦时0.5663元执行; 小玉想自己验证一下,电费通知单上应交电费的数目到底是否正确呢。请编写一个程序,已知用电总计,根据电价规定,计算出应交的电费应该是多少。 要求:使用scanf()和printf()完成。 【输入格式】 输入一个小数,精确到小数点后2位,表示用电总计(单位以千瓦时计),不超过10000。 【输出格式】 输出一个小数,保留到小数点后1位(单位以元计)。 【输入样例】 267.50 【输出样例】 121.7 课堂练习 25 思路分析 ② 判断电量属于哪个等级并计算费用,保存到变量m中 double m=0; if(a<=150)  m=a*0.4463; else if(a>=151&&a<=400) m=150*0.4463+(a-150)*0.4663; else if(a>=401)  m=150*0.4463+250*0.4663+(a-400)*0.5663; ① 输入一个小数,表示用电量 double a; scanf("%lf",&a); ③ 输出结果,保留一位小数 printf("%.1lf",m); 电量 单价 <=150 0.4463 151~400 0.4663 >=401 0.5663 课堂练习 将电量分为三个阶段,小于等于150的部分,单价为0.4463 电量在151~400的部分,单价为0.4663 电量大于等于401的部分,单价为0.5663 1、定义double类型的变量,输入一个小数表示用电总量 2、判断电量属于哪个等级并计算费用,如果电量小于等于150,费用为a*0.4463;如果电量在151到400之间,那么费用包含两部分,一部分是150电量的费用,一部分是超过150的部分;如果电量大于等于401,那么费用包括三部分,一部分是小于等于150的部分,第二部分是在151~400之间的,第三部分是大于等于401的 3、将结果保存到变量m中,输出时保留一位小数,double类型的占位符是%lf,所以输出为%.1lf 26 写一写 #include <iostream> using namespace std; int main(){     double a;     scanf("%lf",&a);     double m=0;     if(a<=150) m=a*0.4463;     else if(a>=151&&a<=400) m=150*0.4463+(a-150)*0.4663;     else if(a>=401) m=150*0.4463+250*0.4663+(a-400)*0.5663;     printf("%.1lf",m);     return 0; } 课堂练习 感谢你的学习 28 $$

资源预览图

编程能力等级认证  LESSON_10-break和continue关键字(课件)
1
编程能力等级认证  LESSON_10-break和continue关键字(课件)
2
编程能力等级认证  LESSON_10-break和continue关键字(课件)
3
编程能力等级认证  LESSON_10-break和continue关键字(课件)
4
编程能力等级认证  LESSON_10-break和continue关键字(课件)
5
编程能力等级认证  LESSON_10-break和continue关键字(课件)
6
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。