// 1.基本用法

let sex = 0 // 0:男 1:女 其他:其他

// **1> switch可以不跟() 2> case语句结束后可以不跟break,默认系统会加


switch sex {

case 0:

print("男")

// fallthrough

case 1:

print("女")

default:

print("其他")

}

// 2.基本用法的补充:

// ** 1>如果希望一个case中出现case穿透,那么可以在case语句结束后跟上fallthrough

// ** 2>case后面可以跟多个条件,多个条件以,分割

switch sex {

case 0, 1:

print("正常人")

default:

print("其他")

}

// **3.switch可以判断浮点型

let a : Double = 3.14


switch a {

case 3.14:

print("π")

default:

print("非π")

}

// ** 4.switch可以判断字符串

let m = 20

let n = 30

let opration = "+"


var result = 0


switch opration {

case "+":

result = m + n

case "-":

result = m - n

case "*":

result = m * n

case "/":

result = m / n

default:

print("非法操作符")

}

// ** 5.switch可以判断区间和元祖匹配


let score = 93


switch score {

case 0..<60:

print("不及格")

case 60..<80:

print("及格")

case 80..<90:

print("良好")

case 90...100: // 元祖匹配

print("不错噢")

default:

print("不合理的分数")

}

/*

区间和元祖匹配

var num = 10;

switch num{

case 1...9:

print("个位数")

case 10...99:

print("十位数")

default:

print("其它数")


}



var point = (10, 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")

}

*/

// **6.Swift: 可以判断对象类型,

//不可以穿透

//可以不写break,

var rank = "A"

switch rank{

case "A": //相当于if

print("优")

case "B": // 相当于else if

print("优")

case "C": // 相当于else if

print("优")

default: // 相当于else

print("没有评级")

}

// ** 7.在case中定义变量不用加大括号

var rank4 = "A"

switch rank4{

case "A":

var num = 10

print("优")

case "B":

print("良")

case "C":

print("差")

default:

print("没有评级")

}

/*

值绑定

var point = (1, 10)

switch point{

case (var x, 10): // 会将point中X的值赋值给X

print("x= \(x)")

case (var x, var y): // 会将point中XY的值赋值给XY

print("x= \(x) y= \(y)")

case var( x, y):

print("x= \(x) y= \(y)")

default:

print("Other")

}


根据条件绑定

var point = (100, 10)

switch point{

// 只有where后面的条件表达式为真才赋值并执行case后的语句

case var(x, y) where x > y:

print("x= \(x) y= \(y)")

default:

print("Other")

}

*/