第18课 血压侦测
血压侦测(逻辑运算符)
探险队即将出发,为了确保探险队队员的健康,在出发之前需要给每位队员进行血压测量,并记录血压情况。为了快速判断队员的血压情况,需要对记录的血压进行分析,这就需要我们的编程小勇士帮忙设计一个血压侦测程序,快速分析输入的血压情况,并输出判定结果。
知识加油站
血压是指血液对血管壁施加的压力,通常以毫米汞柱(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)阅读下面程序,当输入“按下”后,灯是开还是关呢?
