温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

第十一节 逻辑操作符

发布时间:2020-07-27 06:31:16 来源:网络 阅读:290 作者:habout632 栏目:移动开发

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

逻辑操作符用于修改或者组合布尔逻辑值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.

括号

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

第十一节 逻辑操作符

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

 


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI