豆豆家有一个智能门锁,可以用手机远程遥控。门是开着的,豆豆用手机远程遥控大门,先关门,然后开门,最后关门,如图5.9所示。
图5.9 开门与关门
下面的程序模拟了这个过程。
运行结果如下。
这里的open是一个逻辑类型变量。门只有两种状态:开和关。类似这种只有两种可能的数据,计算机可以用逻辑变量来表示。逻辑类型跟前面介绍的整型、字符型一样,也是一种变量类型。
逻辑型变量可以表示一件事情的真假。例如,今天是不是下雨,明天是不是星期一,1+3是不是等于4,这些事情都只有一种可能:要么真,要么假。逻辑变量的值只有两个:true(真)和false(假)。
逻辑变量可以进行逻辑运算,运算结果是一个逻辑值。if...else语句中判断条件的运算结果实际上是一个逻辑值。条件成立的时候,结果是true。条件不成立的时候,结果是false。数字运算用到了加减乘除等符号,逻辑运算用到了逻辑运算符,包含逻辑运算符的表达式称为逻辑表达式。
“open = !open;”中的“!”是一个逻辑运算符,称为逻辑非(“!”)。逻辑运算符“!”的作用就是转换逻辑表达式的值,把真变成假,把假变成真。逻辑非的运算规则如表5.3所示。
表5.3 逻辑非的运算规则
本节程序的流程图如图5.10所示。
图5.10 流程图
变量和数字比较的结果可以存储到一个逻辑变量中,示例代码如下。
运行结果如下。
练习题
(1)阅读程序写结果。
输入:1。
输出:________。
(2)阅读程序写结果。
输入:1。
输出:________。
(3)对于下面的程序,输入0和4分别会输出什么?
(4)教室有7盏日光灯(编号依次为1号到7号),原本都是亮的。糖糖关掉编号是偶数的灯。请补充以下程序,统计还有多少盏灯是亮的。