测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看
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&lt;=n&lt;=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 连接
里程碑达成:

下一节案例:大月、闰年、大小写字母互换。