戳一戳!和我一起走进C++的世界
导读
C++是信息学中非常重要的一门课程,也是绝大多数学生入门信息学、参加信息学竞赛所必备的一门编程语言。
掌握C++,不仅可以让孩子对电脑、编程有更加深刻的认识,也能将学习信息学的方法应用到其他学科领域,特别是能够促进孩子对数学逻辑的理解。
本篇文章中,我们一起来回顾一下break与continue,并完成课后小练习吧!
1 break
1 引入
break很早我们就接触过,在分支结构的开关语句中,break用于结束switch语句。
那break还有什么其他用法呢?让我们接着往下看!
2 break在循环语句中
在循环语句中,我们也会用到break,break用于结束循环语句:
例如下面这行代码:
#include<iostream>
using namespace std;
int main(){
for(int i = 0;i<100;i++){
cout<<"我们执行到了"<<i<<endl;
if(i*i == 64){
cout<<"64的算术平方根是"<<i<<endl;
break;
}
}
return 0;
}
执行结果如下:
我们发现,当执行到break,后面的每一次循环都不执行了!
2 continue
1 引入
逢7过,是一个非常有意思的游戏,几个人围成一圈,如果遇到7的倍数或者某个数位上有7的,那就喊过,其他的喊数字即可!
用我们之前的代码,我们可以用if-else语句实现。
#include<iostream>
using namespace std;
int main(){
for(int i = 0;i<100;i++){
if(i%7 ==0 || i%10 == 7 || i/10 == 7){
cout<<"过"<<endl;
}
else cout<<i<<endl;
}
return 0;
}
那如果我们不用else,可以怎么做呢?
2 continue
C++ 中提供了continue关键字,用于结束当前循环进入下一轮循环。也就是说执行到continue的时候,本轮循环转到下一轮循环。continue后面的语句不会执行到 。
这样,我们就可以修改上面的语句了:
#include<iostream>
using namespace std;
int main(){
for(int i = 0;i<100;i++){
if(i%7 ==0 || i%10 == 7 || i/10 == 7){
cout<<"过"<<endl;
continue;
}
cout<<i<<endl;
}
return 0;
}
continue可以结束当前循环,不执行后面的输出语句。
3 对比
1 举个例子
打比赛的时候,采取五局三胜制。
在预选赛、初赛、复赛中,一对一,一旦输了,就没有后续比赛的参赛资格了。
比如预选赛有32人参加,经过预选赛,留下16个,经过初赛,剩下8个,经过复赛,剩下4个。
到了半决赛,为了保证公平性,要半决赛的所有比赛成员都相互比赛一次,根据比赛结果进行积分排名,得出第四名和季军。
决赛的时候,前两名比赛,决出冠军和亚军。
在前三轮比赛中,一旦输掉比赛,就是break,终止所有后续比赛,无法晋级。
在后面的半决赛,如果有一名比赛成员首先赢得了三局比赛,那么这场比赛,该成员获胜,后面的两局,就不用再比了,两名参赛成员各自参加各自的下一场比赛。这种情况就是continue。
2 对比
对于break来说,一旦满足某个条件或者不满足某个条件执行到break时,后续的所有操作,都会终止。
比如我们判断一个数是不是素数,一旦我们找到一个数,既不是1,也不是它本身,还能整除它。那就说明这个数不是素数,就没有再往后判断的必要了。这个时候,我们就可以使用break。
对于continue来说,一旦满足某个条件或者不满足某个条件执行到continue时,当前轮直接被跳过,不用执行后续操作,从下一轮接着开始。
很多游戏关卡就是这样设置的,一旦我们达到了过关的要求,这一关的后续游戏就不用再进行了,直接进行下一关游戏。
3 总结
根据上面的例子和对比分析,我们知道,break终止得更“强”更“决绝”。
break和continue各有各的适用范围,我们要合理使用,才能让我们写出更好地程序。
3 习题
根据今天讲的内容,完成下面的两道习题。
1 素数(质数)判断
输入一个大于2的数,判断这个数是不是为素数(质数)。
注:
如果一个整数只有两个因数:1和它本身,则这个数是素数。1只有一个因数:1,(它本身也是1)。所以1不是素数
例如:2只有因数1和2,所以2是素数。
AI与区块链技术
长按二维码关注