布尔类型
//忘却OC下的,YES、NO 吧 这里只有true 、false
eg.:
let yes: Bool = true
let no: Bool = false
布尔判断
let isEqual = (1 == 2)// == 等等判断
let isNotEqual = (1 != 2) // != 不等判断
let reverseEqual = !(1 == 2) // ! 反转判断
let isGreater = (1 > 2)
let isLess = (1 < 2)
<=、 >= ...
逻辑判断
let and = true && true //逻辑与
let or = true || false //逻辑或
if 分支判断
//跟其他语言没有什么不一致
if (condition) {
print("true")
}else if(othercondition){
print("...")
}
//在大量罗列各种判断条件时,注意条件组合判断,可以简化代码。
三目运算符
(<condition>) ? <True value> : <False value>
While 循环
while <condition> {
<loop code>
//可以打断循环,关键字 break
}
repeat-while 循环
//等同于 熟悉的 do - while
repeat{
<loop code>
}while <condition>
区间
//闭区间
let closedRange = 0...5
//半开区间
let halfOpenRange = 0..<5
//这是不是很像数学上的概念了,亲切!!!
For 循环
for <constant> in <countable range> {
<loop code>
}
eg.:
let count = 10
var sum = 0
for i in 1..count {
sum += i
}
eg.:
for _ in 0..<count {
//循环固定次数,忽略了循环因子。
}
eg.:
//结合where 进行条件约束
sum = 0
for i in 1...count where i % 2 == 1 {
sum += i
}
labeled statements
//如果你了解 goto 这个关键字的话,应该会了解要说什么了~ 是一样一样的
var sum = 0
rowLoop: for row in 0..<8 {
columnLoop: for column in 0..<8 {
if row == column {
continue rowLoop
}
sum += row * column
}
}
上面rowLoop、columnLoop 就是标签,标明的应该是一个代码块{}的入口。适当用用还可以哦~
Switch 分支
//直接上例子
let number = 10
switch number {
case 0:
print("zero")
//多条件分支组合
case 1, 2:
print("> 0")
//应用区间
case 4...10:
print("close rage")
//应用where条件绑定
case let x where x == 12:
print("x")
//匹配其它条件 这里写到最后,等同于default:
/*
case _ :
print("...")
*/
default:
print("non-zero")
}
//元组匹配
let detail = (age: 18, height: 170 , weight: 60)
switch detail {
case (18, _,_):
print("only concern age")
case (_, height: 170, _):
print("only concern height")
case (_, let height , 60):
print("only concern weight, height = \(height)")
default:
print("the other one")
}