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")

    }

 

posted @ 2016-05-04 10:17  skyPeat  阅读(340)  评论(0编辑  收藏  举报