说明
布尔运算符可用于if语句中的条件判断
&& (逻辑与)
只有在两个操作数都为真时才返回真。
示例程序 (可双击程序内容全选代码):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
/* * 逻辑与布尔运算 * * 本示例程序演示逻辑与布尔运算。通过本程序,Arduino将对引脚2和引脚8的电平状态 * 进行逻辑与布尔运算,并根据运算结果点亮或熄灭引脚13上连接的LED。 * * 电路: * 引脚2连接按键开关1,开关1另一端接地 * 引脚8连接按键开关2,开关2另一端接地 * 引脚13上安装有开发板内置LED * * * This example code is in the public domain * 太极创客 * 2017-01-18 * www.taichi-maker.com */ boolean pushButton1; // 创建布尔型变量用来存储按键开关1的电平状态 boolean pushButton2; // 创建布尔型变量用来存储按键开关2的电平状态 void setup() { pinMode(2, INPUT_PULLUP); //将引脚2设置为输入上拉模式 pinMode(8, INPUT_PULLUP); //将引脚8设置为输入上拉模式 pinMode(13, OUTPUT); //将引脚13设置为输出模式 } void loop() { pushButton1 = digitalRead(2); //读取引脚2电平状态并将其赋值给布尔变量 pushButton2 = digitalRead(8); //读取引脚8电平状态并将其赋值给布尔变量 if (!pushButton1 && !pushButton2){ //根据逻辑与运算结果点亮或者熄灭LED digitalWrite(13, HIGH); //两个布尔变量数值都为假(false)时点亮LED } else { digitalWrite(13, LOW); //否则熄灭LED } } /* 逻辑与运算说明 !pushButton1 = 1, !pushButton2 = 1 ---> !pushButton1 && !pushButton2 = 1 !pushButton1 = 0, !pushButton2 = 1 ---> !pushButton1 && !pushButton2 = 0 !pushButton1 = 1, !pushButton2 = 0 ---> !pushButton1 && !pushButton2 = 0 !pushButton1 = 0, !pushButton2 = 0 ---> !pushButton1 && !pushButton2 = 0 */ |
|| (逻辑或)
任意一个为真时返回真
示例程序 (可双击程序内容全选代码):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
/* * 逻辑或布尔运算 * * 本示例程序演示逻辑或布尔运算。通过本程序,Arduino将对引脚2和引脚8的电平状态 * 进行逻辑或布尔运算,并根据运算结果点亮或熄灭引脚13上连接的LED。 * * 电路: * 引脚2连接按键开关1,开关1另一端接地 * 引脚8连接按键开关2,开关2另一端接地 * 引脚13上安装有开发板内置LED * * * This example code is in the public domain * 太极创客 * 2017-01-18 * www.taichi-maker.com */ boolean pushButton1; // 创建布尔型变量用来存储按键开关1的电平状态 boolean pushButton2; // 创建布尔型变量用来存储按键开关2的电平状态 void setup() { pinMode(2, INPUT_PULLUP); //将引脚2设置为输入上拉模式 pinMode(8, INPUT_PULLUP); //将引脚8设置为输入上拉模式 pinMode(13, OUTPUT); //将引脚13设置为输出模式 } void loop() { pushButton1 = digitalRead(2); //读取引脚2电平状态并将其赋值给布尔变量 pushButton2 = digitalRead(8); //读取引脚8电平状态并将其赋值给布尔变量 if (!pushButton1 || !pushButton2){ //根据逻辑或运算结果点亮或者熄灭LED digitalWrite(13, HIGH); //两个布尔变量数值任何一个为假(false)时点亮LED } else { digitalWrite(13, LOW); //否则熄灭LED } } /* * 逻辑或运算说明 !pushButton1 = 1, !pushButton2 = 1 ---> !pushButton1 || !pushButton2 = 1 !pushButton1 = 0, !pushButton2 = 1 ---> !pushButton1 || !pushButton2 = 1 !pushButton1 = 1, !pushButton2 = 0 ---> !pushButton1 || !pushButton2 = 1 !pushButton1 = 0, !pushButton2 = 0 ---> !pushButton1 || !pushButton2 = 0 */ |
! (逻辑非)
当操作数为假时返回真
示例程序 (可双击程序内容全选代码):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
/* * 逻辑非布尔运算 * * 本示例程序演示逻辑非布尔运算。通过本程序,Arduino将对引脚2的电平状态 * 进行逻辑非布尔运算,并根据运算结果点亮或熄灭引脚13上连接的LED。 * * 电路: * 引脚2连接轻触开关,开关另一端接地 * 引脚13上安装有开发板内置LED * * * This example code is in the public domain * 太极创客 * 2017-01-18 * www.taichi-maker.com */ boolean pushButton; // 创建布尔型变量 void setup() { pinMode(2, INPUT_PULLUP); //将引脚2设置为输入上拉模式 pinMode(13, OUTPUT); //将引脚13设置为输出模式 } void loop() { pushButton = digitalRead(2); //读取引脚2电平状态并将其赋值给布尔变量 if (!pushButton){ //对布尔变量进行逻辑非运算,并根据运算结构点亮或者熄灭LED digitalWrite(13, HIGH); //布尔变量数值为假(false)时点亮LED } else { digitalWrite(13, LOW); //布尔变量数值为真(true)时熄灭LED } } |
注意
不要混淆布尔与运算符,&&(两个&符号)和按位与运算符&(单个&符号)。它们是完全不同的概念。
同样,不要混淆布尔或运算符||(双竖杠)和按位或运算符|(单竖杠)。
按位取反 ~(波浪号)看起来与布尔非 ! 有很大不同,必须确保在什么地方用哪一个。