事前日常敲黑板
(1)这一节的内容和后面紧接着的几节联系较大,一定一定一定要保证 看懂(重要的事情说三遍)
首先,开启灵魂画手模式
这次不用猜了,这就是张电路图,画框框的地方是 开关,画圈圈的地方是 灯泡。此时灯泡的亮灭结果与开关的通断状态有关,所以,这里开关的接通是灯泡亮这个结果的条件。如果开关断开,灯泡灭,如果开关接通,灯泡亮。
然后 是时候考验一下逻辑思维了。
假设有下面几个条件
把开关接通记为 条件为真
把开关断开记为 条件为假
把灯泡点亮记为 结果为真
把灯泡熄灭记为 结果为假
于是上面的图中 开关与灯泡之间的关系可以解释为
条件为真则结果为真 条件为假则结果为假。
上面只是一个开关与灯泡之间的关系,可是,有些时候控制一个灯泡亮灭的不只是一个开关,比如下面这些骚操作
由于这里两个开关采用串联的方式,灯泡的亮灭结果就不只是与一个开关的状态有关系了,而是由两个开关共同决定了。这时 ,只有两个开关同时接通时灯炮才会发光。也就是说 开关1接通并且开关2接通灯炮才处于亮的状态。
这时,我们说 条件1为真 并且 条件二为真 结果才为真。只要有一个条件为假结果都为假。
在c++中 用符号 && 表示两个条件的 “并且” 关系
所以条件1为真 并且 条件2为真 可以表示成 真 && 真 结果为 真
在c++中 条件的 并且关系 类似于 电路的串联,在串联的所有开关中 只要有一个是断开的 那么这个电路就是断开的 类似 在
真 && 真 && 真 …… && 真中 只要有一个是假 那么 整个的结果就是 假。
与串联相似 电路中的开关还可以并联,即 并联的开关中只要有一个处于连通状态那么这一块就相当于是连通的。那么 他们之间的关系就是 一种或的关系 在c++ 这种 “或” 的关系用符号 || 来表示。具有 或 的关系的条件 与结果之间类似
假 || 假 || 假 ||…… 假 || 假 || 假 || 假 只要其中有一个是真 则结果为真。
除了且 和 或之外 还有一种比较奇怪的关系 如下图
开关接通时结果为假,开关断开时结果为 真
这种关系在C++中用 ! 表示 表示 非
即
!真 为 假
!假 为 真
上面提到的 &&(读作 与) ||(读作 或) !(读作 非) 用来表示条件之间的逻辑关系,所以 统称为 逻辑运算符(没错,也是运算符)
条件之间不是只有一种关系,还可能有些比较神秘的混合关系,比如下图
这里面所有的开关都与灯泡的亮灭有关,假设 用a 表示最左侧开关的状态 ,并联的开关从上到下为 b c d e ,与灯泡并联的 为 f。按照上面的 它们与结果之间的关系为
a && (b || c || d || e) && !e
那么 假设 a为真(连接) c为真(连接) 其它为假(断开) 求 最终结果(灯炮的亮灭)