B43
逻辑与或非与 bool 类型
引入
章前总览 多个条件要“同时成立”用与;“有一个成立就行”用或;反过来用非。结果仍是 bool。
本节要点:
- && / and,|| / or,! / not
- 区间判断:n>=80 and n<=90
- bool:true/false,与 1/0 互通
1 C1. 三种逻辑运算符
早期多用 && || !;现在也可用英文 and or not(教材案例多用后者)。
对照
&& 或 and 逻辑与:两边都真才真
|| 或 or 逻辑或:有一边真就真
! 或 not 逻辑非:真变假、假变真
7<9 and 2+3<=5→ true;9<7 and …→ false。- 与、或的结果同样只有 true / false。
2 C2. 与还是或?生活例子
中文里的“和”有时其实是“或”,要按意思选运算符。
典型写法
- 既是 4 的倍数又是 6 的倍数:
a%4==0 and a%6==0 - 是 4 的倍数但不是 6 的倍数:
a%4==0 and a%6!=0 - 落在 [80,90]:
n>=80 and n<=90 - 星期一或星期五打篮球:
n==1 or n==5(不能用 and) - 大月:
m==1 or m==3 or … or m==12 - 儿童 6~12 岁:
a>=6 and a<=12 - 小写字母:
c>='a' and c<='z'
致命错误:80<=n<=90
- 数学上的 80≤n≤90,程序里不能写成
80<=n<=90。 - 它会先算
80<=n得到 0 或 1,再和 90 比较——几乎永远为真。 - 正确:
n>=80 and n<=90。
3 C3. 布尔(bool)型
bool 只有 true / false。关系式、逻辑式的值都是 bool。
定义与换算
bool b1, b2 = true;
b1 = false;
// 内存里 false→0,true→1(占 1 字节)
int a = 2 + b2 + false; // a = 3
bool b3 = 27 + 9; // 非 0 → true
bool b4 = 0.0; // 0 → false
- 当条件用时:非 0 → 真,只有 0 / 0.0 → 假。
小结
记住三句:
同时成立 → and / &&
有一个成立 → or / ||
区间 → 两边各写一次比较,用 and 连接
✓
里程碑达成:
下一节案例:大月、闰年、大小写字母互换。