4. C++知识点之选择结构

不堪回首

大家好,2018年就这么过去了,往事不堪回首呀,2018年经历的太多太多,面对了很多,从一个学生进入社会,有着自己的梦想,但是现实总是比理想残酷,今天一早起来看到外面被大雪覆盖,虽然在北方待了四年,但是心中难免还是有些激动,可是此刻才发现身边并没有人来分享喜悦与快乐,自己一个人拿着手机拍几张照片,心中无比的失落,孤独感油然而生,一整天的心情就像覆盖在大雪之下的茶花,也许这就是成长吧。2019请对我好一些,真希望自己能冲出现实,踏上梦的征程。祝大家2019年新年快乐!

不堪回首的不只是往事,你是否还记得昨天上课的内容呢?我们哪个题目练习练习?输入圆柱底面半径r和高h,输出圆柱的表面积和体积。来看看程序:

#include<iostream>          
using namespace std;              
int main()                                        
{
 double PI=3.1415926;
 double r,h,s1,s2,s,v;
 cin>>r>>h;
 s1=PI*r*r;
 s2=2*PI*r*h;
 s=2*s1+s2;
 v=s1*h;
 cout<<"表面积是:"<<s<<endl;
 cout<<"体积是:"<<v<<endl; 
 return 0; 
}

运行结果如下:
在这里插入图片描述
有没想起上节课学到的东西呢?

我们再来玩个有趣的游戏:输入两个正整数a和b,试交换a,b的值(使a的值等于b,b的值等于a)。
先来分析一下这个题目,交换两个变量的值方法跟多,一般我们采用引入第三个变量的算法,两个变量交换,可以想象成一瓶酱油和一瓶醋进行交换,这时我们容易想到拿一个空瓶子过来:先将酱油倒到空瓶,再将醋倒到酱油瓶中,最后将原空瓶中的酱油倒到醋瓶中。这样就实现将酱油和醋进行交换了。程序如下:

#include<iostream>          
using namespace std;              
int main()                                        
{
 int a,b,c;
 cout<<"Input a=";
 cin>>a;
 cout<<"Input b=";
 cin>>b;
 c=a;
 a=b;
 b=c;
 cout<<"a="<<a<<" b="<<b<<" c="<<c<<endl;
 return 0; 
}

运行结果如下图:
在这里插入图片描述

关系运算符与逻辑运算符

接下来我们学习一些更有意思的东西,哈哈哈。

要学新语法我们首先要先学一下关系运算符和逻辑运算符。关系运算符用于比较运算。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六种。其中大于、小于我们都知道的,大于等于和小于等于由于在电脑上没办法用书面的符号表示因此就用以上的方法表示,而等于和不等于则需要讲讲了,我们在上篇文章说过赋值用的是“=”符号,如果我们判断两个变量的大小关系也用“=”符号,我们将没办法区分赋值等于与判断等于,因此我们用的是两个等于做为关系运算符的判断等于。而不等于呢,也是因为电脑上没办法用书面符号不等于表示因此用“!=”来表示,其中!表示的是非,也就是不,这属于逻辑运算符。

逻辑运算符用于逻辑运算,包括与(&&)、或(||)、非(!)三种,这三个符号我们要好好讲讲,逻辑运算符的值为“真”和“假”两种,用“1”和“0”来表示,求值规则如下:

  1. 与运算符参与运算的两个量都为真时结果就为真,否则为假。例如:5>0&&4>2,由于5>0为真,4>2也为真,相与的结果也为真。
  2. 或运算符||参与运算的两个量只要有一个为真,结果就为真;两个量都为假时,结果才为假。例如5>0||5>8,由于5>0为真,相或的结果也就为真。
  3. 非运算符!参与运算量为真时,结果为假;参与运算量为假时,结果为真。例如:!(5>0)的结果为假。

逻辑运算以“1”代表“真”,“0”代表“假”。但反过来在判断一个量时为“真”还是为“假”时,以“0”代表“假”,以非“0”的数值作为“真”。例如:由于5和3均为非“0”,因此5&&3的值为“真”,即为1。又如:5||0的值为“真”,即为1。

看明白了吗?要是没看明白,我们后面在实例中练习。

if选择语句

格式如下:

if(条件表达式)
{
 语句1;
 语句2;
 ... 
}

若条件表达式的条件为真(成立)时,要执行的操作由多个句子构成,我们必须要把这些句子括在一对花括号{}内,我们程这种形式为语句块或复合语句。若要执行的操作语句仅为一个句子则格式如下:

if(条件表达式)
 语句1;

语句的功能:如果条件表达式成立时,语句块将被执行。否则,语句块将被忽略(不被执行),程序将按顺序从整个选择结构之后的下一条语句继续执行。注意:格式中的“条件表达式”必须用圆括号括起来。
我们来练一练吧:
程序1.读入一个整数a,如果a为偶数在屏幕上输出yes。

#include<iostream>          
using namespace std;              
int main()                                        
{
 int a;
 cin>>a;
 if(a%2==0)
  cout<<"yes"<<endl;
 return 0; 
}

运行结果如下图:
在这里插入图片描述
程序设计风格提示:书写语句块时,左右花括号要对齐,组成语句块的各语句要相对花括号缩进一层对其(缩进四个字符)。

程序2.若把程序1改为“读入一个整数a,如果a为偶数在屏幕上输出yes,如果a为奇数在屏幕上输出no”,该如何修改程序?这个程序我想我不需要写出来了吧?

程序3.读入一个数,若这个数大于1并且小于100,则输出yes。

#include<iostream>          
using namespace std;              
int main()                                        
{
 int a;
 cin>>a;
 if(a>1&&a<100)
  cout<<"yes"<<endl;
 return 0; 
}

这个程序里就用到了与运算符,即当a>1并且a<100两个条件都成立的时候整个条件才成立。来看看结果:
在这里插入图片描述
程序4.输入三个整数,按从大到小的顺序输出。

#include<iostream>          
using namespace std;              
int main()                                        
{
 int a,b,c,temp;
 cin>>a>>b>>c;
 if(a>b)
 {
  temp=a;
  a=b;
  b=temp;
 }
 if(a<c)
 {
  temp=a;
  a=c;
  c=temp;
 }
 if(b<c)
 {
  temp=b;
  b=c;
  c=temp;
 }
 cout<<a<<" "<<b<<" "<<c<<" "<<endl;
 return 0; 
}

运行结果如下:
在这里插入图片描述分析:输入的三个数存在a,b,c中,设想让a为三数中最大数,怎么办呢?如果a<b,那么让a和b的值交换,保证a>=b;如果a<c,那么让a和c的值交换,就保证了a>=c;设想让b为第二大的数,c为第三大的数,怎么做呢?如果b<c,那么让b和c的值交换,就保证了b>=c,最后输出a,b,c的值。这个程序用到的就是文章开头的两个变量值交换的思想。

祝各位小伙伴2019新年快乐

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值