1.4 布尔值

1.4.1 布尔值的概念

有时,我们说一个判断是对的,这意味着真。反之是假。

var a = (1 + 1 > 1)
print(a) // true

var b = (1 + 1 < 0)
print(b) //false

true就是真,false就是假。truefalse统称为布尔值。
布尔类型的变量,值为truefalse

var x = true
var y = false

练习7
创建一个变量,名字为z,值为true
将它显示到控制台。

// 在这里添加代码
print(z) // true

难度:#

1.4.2 逻辑运算

布尔值与布尔值之间不能加减乘除,但有一套独特的运算方法。

1.4.2.1 非运算

非运算的形式为![值],优先级最高。
假变真,真变假。

var x = true

var y = !x // 非运算
print(y) // false

y = !y
print(y) // true

1.4.2.2 与运算

与运算的形式为[值] && [值]
类似于乘法,只要有一个假,则结果为假。

var T = true
var F = false

print(T && T) // true
print(F && T) // false
print(T && F) // false
print(F && F) // false

1.4.2.3 或运算

或运算的形式为[值] || [值]
类似于加法,只要有一个为真,则结果为真。

var T = true
var F = false

print(T || T) // true
print(F || T) // true
print(T || F) // true
print(F || F) // false

练习8
已知有布尔变量,xy,值不确定。
现在设计一个运算流程,使result按照以下规则被赋值:

输入的x输入的y得到的result
TTF
FTT
FFF
TFT

这不是很容易想,可以先在草稿纸上试一试。
在此基础上修改:

var x = true // 或false
var y = true // 或false

// 在这里添加代码

print(result)

难度:##

1.4.3 比较运算

就像在本文开头的例子所演示,比较运算可以返回布尔值。

1.4.3.1 相等和不相等

运算符==的作用是,如果两个值相等,则返回true,否则返回false。

var a = (1 == 0)
print(a) // false

对这个结果加上非运算,就相当于运算符!=,判断两个值是否不相等。

var a = (1 != 0)
print(a) // true

1.4.3.2 比较大小

大于号和小于号,意思和常规理解一致。

print(1 > 2) // false
print(1 < 2) // true

在它们的前面加上等于号,意思是,若两者相等,也可以返回真值。

print(1 >= 2) // false
print(1 <= 2) // true

print(1 >= 1) // true
print(1 <= 1) // true

练习9
比较12 x 7834 x 56哪个大。
用布尔值表示判断结果,并将它显示到控制台。如果左侧大,则返回true,否则返回false
难度:#

1.4.4 三元条件运算

布尔值是一个很基础的概念,可以用到很多地方。本文举一个简单的例子。
请看以下代码:

var x = true

var result = (x ? "x是true" : "x是false")
print(result) // x是trye

另外,如果xfalse,则返回另一个选项。

var x = false

var result = (x ? "x是true" : "x是false")
print(result) // x是false

所谓三元条件运算,就是[布尔值] ? [值1] : [值2],布尔值决定了表达式的返回值是值1还是值2

练习10
已知布尔变量,x,值不确定。
现在设计一个运算流程,使x的值由truefalse或由falsetrue
如果对x作非运算,可以很直接地实现。

var x = true // 或false

var result = !x

print(result)

如果不用非运算却实现完全相同的效果,如何?
在此基础上修改:

var x = true // 或false

// 在此处添加代码

print(result)

难度:##


参考答案
练习7

var z = true
print(z) // true

练习8
这只是一种方案。实际上也可以用三元运算符完成这个运算流程。

var x = true // 或false
var y = true // 或false

// 注意到,当x和y的值相同时,result为false,否则为true
var a = x || y
var b = x && y
var c = !b

var result = a && c

练习9

var result = (12 * 78 > 34 * 56)
print(result) // false

练习10

var x = true // 或false

var result = x ? false : true
print(result)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值