点此查看 所有教程、项目、源码导航
1. 前言
之前两篇文章,我们先后讲解了数字类型和字符串类型,数字类型用于表示数值,字符串类型可以表示一段文本。
本节我们来讲解下布尔类型,它用来表达真假。相较于数字类型、字符串类型,布尔类型更加抽象,我给大家讲一些来龙去脉的东西,让大家好理解一些。
2. 布尔类型是干啥的
布尔类型只有两个值:true表示真,false表示假,用来存储判断的结果。
举个例子,数字1大于数字2吗?结果是假的,所以这个结果用布尔类型表示就是false。
再举个例子,2000年是闰年吗?结果是真的,所以这个结果用布尔类型表示就是true。
2. 布尔类型是必须的吗?
首先,据我所学习过的语言,包括C/C++/OC/C#/Java/Python/JavaScript,并不是所有语言都有布尔类型,但是大多数语言有布尔类型。
可见,布尔类型不是必须的。
布尔类型只有两个值,所以我们完全可以用数字0表示假的,用数字1表示真的。
或者我们用字符串"真"
表示真的结果,字符串"假"
表示假的结果。
这些都是可以的,并且有些语言真是这么做的。
3. 那为什么还需要布尔类型
虽然不用布尔类型,也能表达真假,但是容易出问题。
例如我们使用变量sex表达是否是男性,true表示判断结果为真的,是男性;false表示判断结果为假的,是女性。代码如下:
// 用布尔类型表示判断男性的结果
var sex = true; //判断结果为真的,是男性
sex = false; // 判断结果是假的,是女性
因为布尔类型,只有两个值,所以要么是男性,要么不是男性是女性,所以我们的程序表达的意义很明确。
那么如果我们不使用布尔类型,而是约定使用数字1表示男性,0表示女性,如下:
// 用数字类型表示性别
var sex = 1; // 1表示男性
sex = 0; // 0表示女性
上面的代码是没有问题的,也能通过1或0区分性别。
但是我们也可以不小心写成了:
sex = 2
sex = 3;
那sex值为2和3,很明显这个是不正确的,因为我们程序设计的意图就是用sex表示性别,出现这样的代码很不幸,没人能理解。大家不要觉得可笑,因为凡事可能必会发生,这是墨菲定律!
做一个总结吧,使用布尔类型,不是真就是假,非常明确。而使用其他类型,我们还有很多控制不了的结果。所以使用布尔类型表达判断结果,是最合适的。
因为我们的程序需要不断的判断结果,例如用户名密码是否正确,例如是否确定清空购物车,例如银行卡余额是否足够支付当前商品。所以非常有必要创建一种数据类型,来存储判断的结果。这个大家以后会慢慢体会到布尔类型的好处的。
4. 小结
布尔类型只有两个值true,fase,数字类型和字符串类型的值是无限的。
布尔类型比较抽象不好理解,大家如果暂时不能理解也不要着急,以后在学习使用中我们会无数次的接触它,从而揭开它神秘的面纱。