Swift中的逻辑运算
//MARK:-
//MARK:- *****if语句*****
/*
1、if 条件表达式 {指令}
2、if 条件表达式 {指令} else{指令}
3、if后的()可以省略
4、在Swift的判断句中必须有明确的真假,只能以bool作为条件语句,Bool值有两个取值:false/true
5、如果只有条指令if,后面的大括号不可以省略
*/
let score = 87
if score < 60 {
print("不及格")
} else if score < 70 {
print("及格")
} else if score < 80 {
print("良好")
} else {
print("优秀")
}
//MARK:-
//MARK:- *****三目运算符*****
/*
Swift中三目运算符保持了和OC一致的风格
*/
var a = 10
var b = 23
var resulte = a>b ? a : b
print(resulte)
//MARK:-
//MARK:- *****guard的使用*****
/*
1、guard是Swift2.0新增的语法,它与if语句非常类似,它设计的目的是提高程序的可读性
2、guard必须用在函数里面,guard语句必须带有else语句,语法如下:
2.1 当条件表达式位true的时候跳过else语句,执行语句中的内容
2.2 条件表达式为false的时候执行else语句中的内容,跳转语句一般是:return(一般用在函数里)、break(一般用在循环语句)、continue(一般用在循环语句)、throw
3、guard表达式
guard 条件表达式 else {
条换语句
break
}
语句组
*/
func online(age : Int) -> Void{
guard age > 18 else{
print("可以上网")
return
}
print("未成年")
}
online(a)
//MARK:-
//MARK:- *****switch语句*****
/*
1、Swift中对switch进行了大大的增强,使其拥有了其它语言中没有的特性
2、基本用法与OC用法一致
3、switch后可以不加()
4、case后可以不跟break(默认会有break),但是default不能省略
5、一个case可以判断多个值
6、支持多种数据类型判断(浮点数据类型、字符串数据类型、区间类型)
6.1 Swift中的区间常见有两种:
1、半开半闭区间:0..<10 表示0到9
2、闭区间:0...10 表示0到10
7、如果希望case穿透,则可以使用关键字fallthrough
8、具体变化如示例程序所示
*/
//MARK:1、基本用法
let sex = 0
switch sex {
case 0:
print("男人")
case 1:
print("女人")
default:
print("绝B去过泰国")
}
//MARK:2、一个case可以判断多个值
switch sex {
case 0,1:
print("正常人")
default:
print("人妖")
}
//MARK:3、case穿透:fallthrough
switch sex {
case 0:
print("正常人")
fallthrough
case 1:
print("正常人")
default:
print("人妖")
}
//MARK:4、浮点型判断
let π = 3.14
switch π {
case 3.14:
print("is \(π)")
default:
print("not π")
}
//MARK:5、字符串类型
let operation = "+"
switch operation {
case "+":
resulte = a + b
case "-":
resulte = a - b
case "*":
resulte = a * b
case "/":
resulte = a / b
default:
resulte = 0
}
print(resulte)
//MARK:6、区间类型
switch score {
case 0..<60:
print("不及格")
case 60..<70:
print("及格")
case 70..<80:
print("良好")
case 80...100:
print("优秀")
default:
print("不合理成绩")
}
//MARK:7、区间和元祖匹配
var point = (1, 15)
switch point{
case (0, 0):
print("坐标在原点")
case (1...10, 10...20): // 可以在元祖中再加上区间
print("坐标的X和Y在1~10之间")
case (_, 0): // X可以是任意数
print("坐标的X在X轴上")
default:
print("Other")
}
//MARK:8、值绑定
point = (1, 10)
switch point{
case (var x, 10): // 会将point中X的值赋值给X
print("x= \(x)")
case (var x, var y): // 会将point中X、Y的值赋值给X、Y
print("x= \(x) y= \(y)")
case var( x, y):
print("x= \(x) y= \(y)")// 会将point中X、Y的值赋值给X、Y
default:
print("Other")
}
//根据条件绑定
point = (100, 10)
switch point{
// 只有where后面的条件表达式为真才赋值并执行case后的语句
case var(x, y) where x > y:
print("x= \(x) y= \(y)")
default:
print("Other")
}