第十一节 逻辑操作符

本文来自于疯子们的开源图书

逻辑操作符用于修改或者组合布尔逻辑值truefalse。Swift支持C语言当中的三个标准逻辑操作符:

  • 逻辑非(!a)

  • 逻辑与(a&&b)

  • 逻辑或(a||b)

逻辑非操作符

逻辑非操作符翻转一个布尔值,即将true变成false,false变成true.

逻辑非是一个前序操作符,后面紧跟着要操作的值,中间没有空白。可以读作"非a",就像下面的例子一样:

表达式if !allowedEntry可以读作“if not allowed entry”.只有当"not allowed entry'是true的时候,接下来的代码才会执行。即 allowedEntry 是false.

就像上面的例子一样,仔细的选择一下逻辑变量和常量的名字有助于代码的简洁和可读性,从而可以避免双重否定或者令人混淆的逻辑语句。

逻辑与操作符

由逻辑与操作符(a&&b)构成的逻辑表达式只有当两个值都是true的时候,整个表达式才是true

只要其中的一个为false的话,整个表达式就是false.事实上,如果第一个值为false,第二个值也不会计算的,因为整个表达式的值已经不可能为true了。这就是所谓的短路法则。

下面的例子会考虑两个Bool值的,只有当两个都为true的时候,才可以进门去:

 

逻辑或操作符

逻辑或(a||b)操作符是由两个竖杠构成的中序操作符。由逻辑或操作符构成的逻辑表达式只要有一个的值为true,整个表达式的值就为true.

就像上面的逻辑与操作符,逻辑或操作符也使用短路法则计算表达式的值。如果逻辑或操作符左侧的值为true,

那么右侧的值也不会计算了,因为已经不可能影响到整个表达式的结果了。

在下面的例子中,第一个布尔值(hasDoorKey)为false,但是第二个值(knowsOverridePassword)为true,由于有一个值为true,整个表达式的值也为true,可以进门了:

组合使用逻辑操作符

你可以组合使用多个逻辑操作符来构成一个更长的复合表达式:

这个例子中使用了多个&&||操作符构成了一个更长的复合表达式。不过&&,||仍然是二元操作符,因此实际上这个表达式就是由三个更小的表达式构成的而已。可以读作:

如果我们输入了正确的进入码,并且通过了视网膜扫描;或者我们有能开门的钥匙;或者我们知道紧急通行密码,那么我们都可以进门。

根据的值,虽然前两个子表达式的值都为为false.不过紧急通行密码是已知的,整个表达式的值就是true.

括号

虽然有些地方没有强制使用括号,但是有时候使用一下括号还是很有用的,它可以使得一个复杂表达式的含义更容易阅读。还是上面进门的例子,在复合表达式的第一部分上添加括号可以使得他的含义更加的清晰:

在前两个值上添加括号可以使得他们作为一个整体的来看待。整个表达式的值没有变,但是真个表达式的含义更易于阅读了。可读性永远比简洁性更重要。尽量适当的使用一下括号,表达式的含义会更加的清晰。

 

转载于:https://my.oschina.net/u/126158/blog/281267

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值