Swift 中 if , else if ,三目运算相较OC来说 , 除了更加精简 , 几乎没有变化 . 只是Swift中新增了 guard判断 , Switch得到大力加强. Switch留到下篇文章进行讲解
// if用法
// 1. if后面 ()可以省略 , 加上也没错 , 为了精简尽量省略
// 2. 判断句不再有非0即真,判断句必须有明确的真假(BOOL-->true/false),比OC更加严谨
let a = 10
if a > 0 {
print("a大于0")
}else{
print("a小于或等于0")
}
//else if用法
let score = 92
if score >= 90 {
print("非常优秀")
}else if score >= 80 {
print("优秀")
}else if score >= 70 {
print("良好")
}else if score >= 60 {
print("及格")
}else {
print("不及格")
}
//三目运算
let m = 5
let n = 3
var result = 0
m > n ? (result = m) : (result = n)
result = m > n ? m : n
//guard (OC中无)
//和if非常相似 , 目的为提高程序可读性
/*
guard 判断条件 else {
不满足条件执行语句
return / continue / break /throw
}
满足条件执行语句
*/
//场景1 :
goToNetbar(20)
alsoGoToNetbar(15)
//如果仅仅是这样 , 程序的可读性其实用if语句还更好一些 , 然而如果是多次嵌套判断 ,guard的优势就相当明显 . 比如以下场景 , 一个人去一个收费的公共厕所 , 厕所分男女 , 而且要收费 , 这里我们需要判断一个男子能不能上厕所 .
//场景2 : (嵌套)
//此处只设置了一层嵌套 , 在实际开发中也许我们会遇到多层嵌套 , 这里就不演示了
goToWashroom(0, money: 0.1)
alsoGoToWashroom(1, money: 1.0)
// if语句 : 去上网
func goToNetbar(age : Int) {
if age > 18 {
print("满足条件,可以上网")
}else {
print("不能上网")
}
}
// 这里简单介绍一下Swift中函数的写法 func + 函数名 + 参数 + 返回值 , 更详细说明后面会讲到
// guard语句 : 去上网
func alsoGoToNetbar(age : Int) -> Void {
guard age > 18 else {
print("不能上网")
return //如果涉及到循环等会用到continue , break等
}
print("满足条件,可以上网")
}
// if语句判断 , 此处只是多加了一层判断 , 如果再多几层判断 , 那么可读性就会非常的差了
func goToWashroom(sex : Int , money : Double) -> Void {
if sex == 1 {
if money > 0.5 {
print("可以上厕所")
}else{
print("去付钱")
return
}
}else{
print("去女厕所")
return
}
}
// 如果用 guard 进行判断, 即使有更多的条件判断 , 可读性依然良好 , 这也是OC中没有的
func alsoGoToWashroom(sex : Int , money : Double) -> Void {
guard sex == 1 else {
print("去女厕所")
return
}
guard money > 0.5 else {
print("去付钱")
return
}
print("可以上厕所")
}