废话少说,我们继续把运算讲完:
1.比较运算在Swift中,标准C里的比较运算符都是可以使用的,比如:
a == ba != ba > ba< ba >= ba<= b
在Swift中也提供恒等于号 “===” 和不恒等于号 “!==”,而且这些比较运算符都会返回一个Bool值,比如:
1 == 1 // 返回一个true,因为1 等于 12 != 1// 返回一个true,因为2 不等于 12 > 1// 返回一个true,因为2 大于 11 < 2// 返回一个true,因为1 小于 21 >= 1// 返回一个true,因为1 等于或者大于12 < = 1// 返回一个false,因为2 不小于 1
也可以在 if 语句中使用:
let name = "world"if name == "world" { println("Hello world")} else { println("我不认识你啊,\(name)")}// 打印的结果: Hello world2. 三目条件运算
其实所谓的三目运算就是一个if语句:
这就是三目运算符的原型:
if question { answer1 } else { answer2 }
举个例子:
let contentHeight = 40let hasheader = truelet rowHeight = contentHeight + (hasheader ? 50: 20)println(rowHeight)// 打印出来的结果: 90
原型:
let contentHeight = 40let hasheader = truevar rowHeight = contentHeightif hasheader { rowHeight = rowHeight + 50} else { rowHeight = rowHeight + 20}println(rowHeight)// 打印出来的结果: 90
利用三目运算符比原型简单多了.
3.区间运算符所谓的区间运算其实就是我们设定的范围,在我们 for-in 的时候就会用到,或者其他有关于从几到几的运算都是要用到区间运算符的,在Swift中的区间运算符很简单:
区间运算符
for index in 0...10 { println(index)}// 打印出来的结果: 0,1,2,3,4,5,6,7,8,9,10
还有一种叫做半区间运算符
for index in 0..<10 { println(index)}// 打印出来的结果: 0,9
看到结果就知道是什么情况了,这里我就不多做说明了.
4.逻辑运算符在Swift中也有与或非这三个逻辑运算符:
!aa&&ba||b
由于原理是和OC一致,所以这里就不多做解释,直接看例子:
逻辑非
let allowedEntry = falseif !allowedEntry { println("ACCESS DENIED")}// 打印出来的结果: ACCESS DENIED
逻辑与
let enteredDoorCode = truelet passedRetinaScan = falseif enteredDoorCode && passedRetinaScan { println("Welcome!")} else { println("ACCESS DENIED")}// 打印出来的结果: ACCESS DENIED
逻辑或
let hasDoorKey = truelet kNowsOverrIDePassword = falseif hasDoorKey || kNowsOverrIDePassword { println("Welcome!")} else { println("ACCESS DENIED")}// 打印出来的结果: Welcome!
组合逻辑
let enteredDoorCode = falselet passedRetinaScan = truelet hasDoorKey = falselet kNowsOverrIDePassword = trueif enteredDoorCode && passedRetinaScan || hasDoorKey || kNowsOverrIDePassword { println("Welcome!") } else { println("ACCESS DENIED") }//打印出来的结果: Welcome!
在多重与或非运算的时候,我们是从左往右开始的,如果按照例子这样子来写,是不够明确,所以我们可以使用 () 号来区分优先级:
let enteredDoorCode = falselet passedRetinaScan = truelet hasDoorKey = falselet kNowsOverrIDePassword = trueif (enteredDoorCode && passedRetinaScan) || hasDoorKey || kNowsOverrIDePassword { println("Welcome!") } else { println("ACCESS DENIED") }// 打印出来的结果: Welcome!
这样子的写法可以使代码有非常好的明确性.
这里还有一个比较特殊的例子:
let defaultcolorname = "red"let userdefinedcolorname: String?var colornameToUse = defaultcolorname ?? userdefinedcolornameprintln(colornameToUse)// 打印出来的结果: Optional("red")
Userdefinedcolorname 变量被定义作为一个可选的字符串,默认值为零。由于 userdefinedcolorname 是一个可选的类型,可以使用零合并运算符来考虑它的价值。在上面的示例中,该运算符用于确定一个名为 colornameToUse 的字符串变量的初始值。因为 userdefinedcolorname 是零,表达 userdefinedcolorname ?? defaultcolorname 返回的值的 defaultcolorname,或”红色”。
好了,这次我们就讲到这里,下次我们继续~~
总结以上是内存溢出为你收集整理的Swift语法基础:12 - Swift的比较运算, 三目条件运算, 区间运算, 逻辑运算全部内容,希望文章能够帮你解决Swift语法基础:12 - Swift的比较运算, 三目条件运算, 区间运算, 逻辑运算所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)