c++入门教程(十一)
来源:互联网 发布:手机淘宝运费怎么设置 编辑:程序博客网 时间:2024/06/07 23:10
首先,来解决一下上一节问题
质数:在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数
然后大概思路就是 先判断这个数和2 的关系.
小于2一定不是
不小于2需要判断
然后 ,又到了流程图时间了
这张图可能有点复杂,红色框框里面是真正的循环.参照下面的代码看一下吧
#include <iostream>using namespace std;void main(){int a = 0;int b;cin>>b;if(2 > b){cout<<"不是质数"<<endl;}else{for(int c = 1; c<b; c++){if(0 == (b%c)){a++;}}if(a > 2){cout<<"不是质数"<<endl;}else{cout<<"是质数"<<endl;}}}然后来思考一个问题
当输入的是20的时候 20有下面几个约数 1,2,4,5,10,20
当判断完4的时候就已经有三个约数了,这个数就一定不是质数了,所以这个时候我们需要提前结束循环
在c++里面使用break来提前结束循环(当执行到break时循环不再向下进行而是直接结束,继续执行循环之后的代码)
上面例子用break修改后的结果如下
#include <iostream>using namespace std;void main(){int a = 0;int b;cin>>b;if(2 > b){cout<<"不是质数"<<endl;}else{for(int c = 1; c<b; c++){if(0 == (b%c)){a++;}if(a > 2){break;}}cout<<"结束循环时a = "<<a<<" b = "<<b<<" c = "<<c<<endl;if(a > 2){cout<<"不是质数"<<endl;}else{cout<<"是质数"<<endl;}}}运行结果如下
可以看到结束循环时c为4 没有把1~20所有的数字都判断一次
与break类似的还有一个continue 不过continue只是跳过自己到循环体结束的大括号之间的代码然后继续循环的执行(break是直接结束循环,不会再执行了)
例如有下面需求
输入一个数a,输出1~a之间所有不能被3整除的数
代码如下
#include <iostream>using namespace std;void main(){int a;cin>>a;for(int b = 1; b<=a; b++){if(0 == (b % 3)){continue;}cout<<b<<" ";}cout<<endl<<"循环结束"<<endl;}
可以看到 所有3的倍数跳过了输出的步骤直接向下执行了
阅读全文
0 0
- C语言入门教程 (二十一) 位操作
- c++入门教程(十一)
- C语言入门教程 (十一) 函数参数的传递和值返回
- Framework Manager入门教程(十一) - 决定因素
- ExtJs 入门教程十一[网格面板:GridPanel]
- ExtJs 入门教程二十一[单选框 :Radio]
- ExtJs 入门教程十一[下拉列表:Combobox]
- ExtJs 入门教程二十一[继承:Extend]
- OPENCV入门教程十一:dilate图像膨胀
- RabbitMQ入门教程(十一):消息属性Properties
- Unix C (十一)
- Visual C++/MFC入门教程
- Visual C++/MFC入门教程
- Visual C++/MFC入门教程
- Visual C++/MFC入门教程
- Object-C 入门教程
- Visual C++/MFC入门教程
- Visual C++/MFC入门教程
- 八大常见内排序java实现
- oracle 修改登录
- Tarjan算法求解强连通分量(SCC)
- CSS3圆角详解
- 神经网络入门
- c++入门教程(十一)
- elasticsearch之Document APIs【Scroll】
- Servlet中forward、sendRedirect、include的区别
- Tools_Procexp找文件被哪个进程占用
- Python3 爬虫快速入门攻略
- HDU 4609 3-idiots(FFT)
- Java 常用类库(一)
- Android应用资源总结五:res下的anim和animator文件夹
- Python中模块和包的概念