课程首页 › 第2部分 › 第18课

第18课 血压侦测

第2部分 智能的开始 · 选择结构· 知识点:逻辑运算符

血压侦测(逻辑运算符)

探险队即将出发,为了确保探险队队员的健康,在出发之前需要给每位队员进行血压测量,并记录血压情况。为了快速判断队员的血压情况,需要对记录的血压进行分析,这就需要我们的编程小勇士帮忙设计一个血压侦测程序,快速分析输入的血压情况,并输出判定结果。

知识加油站

血压是指血液对血管壁施加的压力,通常以毫米汞柱(mmHg)为单位。血压有两个值:收缩压(Systolic Pressure)和舒张压(Diastolic Pressure)。

●收缩压:收缩压是心脏搏动时,将血液推送到体循环中的最高压力。

●舒张压:舒张压是心脏休息时,血液在动脉中施加的最低压力。

血压可以通过血压计来测量。血压计被包裹在一个充气袖带上,测量时将它放在上臂上,充气袖带会逐渐充气,然后逐渐释放气压,同时测量血压值。

血压侦测

假设血压的判定标准为:

●低血压:收缩压低于90mmHg,同时舒张压低于60mmHg。

●正常血压:收缩压为90~139mmHg,舒张压为60~89mmHg。

●高血压:收缩压高于或等于140mmHg,同时舒张压高于或等于90mmHg。

插图

运行程序:

请输入收缩压:130

请输入舒张压:80

血压正常!

(1)

if(){}
else if(){}
else if(){}
else{}

通过if-else if-else将血压的多种情况(低血压、高血压、正常、其他)进行分析判断。

(2)systolicPressure<90 && diastolicPressure<60。

运用拆分法来理解这段代码,将它拆解成3部分:systolicPressure<90、&&、diastolicPressure<60。

拆解法助力理解

如何运用拆解法帮助我们理解呢?拆解到你能够理解和分段的最小单元。

例如:

拆解到systolicPressure<90就已经可以理解了,不需要继续拆解了。如果之前我们没有学习关系表达式,还可以继续拆解成systolicPressure、<、90。

拆解完成后,再反向组合去理解,最后回到没有拆解的状态。

①systolicPressure<90:将输入的systolicPressure和90进行比较,如果systolicPressure小于90,则条件成立(true);如果systolicPressure大于或等于90,则条件不成立(false)。

②&&这个符号我们并不认识,它是我们这次要学习的知识点。暂时放一放,先将拆解部分中可以理解的消化掉。

③diastolicPressure<60:将输入的diastolicPressure和60进行比较,如果diastolicPressure小于60,则条件成立(true);如果diastolicPressure大于或等于60,则条件不成立(false)。

插图

通过systolicPressure<90 &&diastolicPressure<60这段代码的判断,我们就可以判定血压是低血压。再结合低血压的判断条件(低血压:收缩压低于90mmHg同时舒张压低于60mmHg),我们大胆地猜测一下&&的意思就是同时,表示两个条件要同时满足。

例如systolicPressure=100、diastolicPressure=50,systolicPressure不满足小于90,diastolicPressure满足小于60,但是程序不会判定为低血压,因为只满足了一个条件。

继续阅读高血压和正常血压的判定条件,理解&&的含义。

划重点

逻辑与运算符&&连接两个或多个条件,只有当所有条件都成立(true)时,整个表达式才为真(true)。只要其中有一个条件不成立(false),则整个表达式就为假(false)。

插图

想要验证真和假,可以编写一个小程序帮助我们。将要判断的内容写到()里面,运行程序,如果输出1,那么表示真,如果输出0,那么表示假。

插图

插图
插图

考试通过

学校进行了两次模拟考试,每次考试及格为60分,为了降低考生失误的情况,规定两次考试只要一次及格,就视作考试通过。现向程序输入两次考试成绩,判断考生是否通过考试。

插图
插图

(1)cin>>score1>>score2:连续输入两个值。

(2)score1>=60||score2>=60:通过||连接两个或多个条件,只需要其中一个条件成立(true),则整个表达式就为真,执行输出"恭喜考试通过!"。

敲黑板

>=也可以理解成>||==。

score1>=60:score1大于或等于60,就是score1>60或score1==60,用||连接表示为score1>60||score1==60。

划重点

逻辑或运算符||连接两个或多个条件,只要其中有一个条件成立(true),则整个表达式就为真(true)。只有全部条件不成立(false),整个表达式才为假(false)。

插图

工作指示灯

有一句励志的话语:“生命不息,奋斗不止。”运用逻辑运算符非来表示,可以这样写。

if(!生命停止){

奋斗

逻辑非运算符!将条件反着来,如果条件为真,!将其变为假;如果条件为假,!将其变为真。

插图

生命停止反着来是!生命停止,表示生命不停止—生命不息。

工作指示灯也有这种精神,工作不停灯不灭。

插图

(1)bool stop:布尔类型用于表示逻辑,有两个值:true和false。

布尔类型的关键字是bool,表示为bool变量名。

例如:

bool istrue=true; bool isfalse=false;(2)stop=state=="停止"结合!stop一起分析。

①如果输入的内容是“停止”,那么state=="停止"等于true,然后将它赋值给stop。

插图

②如果输入的内容不是“停止”,那么state=="停止"等于false,然后将它赋值给stop。

插图

敲黑板

!=也可以看作非等于。

6!=6→!(6==6)

巩固练习

(1)以下哪个运算符是逻辑“或”运算符?()

A.&& B.||

C.!

D.|

(2)下面哪个语句表示“如果x大于10或者等于10,就执行某些操作”?()

A.if(x>10||X==10)B.if(x>10 && x==10)C.if(x<=10)D.if(x>10||x==10)(3)阅读下面程序,当输入“按下”后,灯是开还是关呢?

插图