美文网首页swiftiOS 开发每天分享优质文章iOS开发随笔
Swift学习历程02 - 判断语句 循环语句

Swift学习历程02 - 判断语句 循环语句

作者: 凉风有性 | 来源:发表于2016-04-27 23:08 被阅读147次

    献给一起学习的小伙伴

    • 做OC开发也快2年了,最近公司要求Swift来开发,组里的小伙伴就叫我整理个资料给他们,所以就抽空写了这个,每天写一点,把OC 和** Swift **的不同点都标注出来,方便大家对比,我也小小的回顾一下,希望看的小伙伴们持续关注.
    • 今天大概说下判断语句、循环语句,开搞:

    1-判断语句

    1.1 if 分支语句
    - 在Swift的判断句中必须有明确的真假不再有非0即真
    必须有明确的Bool值
    - Bool有两个取值:false/true

    oc版
        int a = 10;
        int b = 8;
        
        if (a > b) {
            NSLog(@"a大于b");
        }else{
            NSLog(@"a小于b");
        }
    
    swift版
        let score = 87
        if score < 60 {
            print("不及格")
         } else if score <= 70 {
            print("及格")
         } else if score <= 80 {
            print("良好")
         } else if score <= 90 {
            print("优秀")
         } else {
            print("完美")
         }  
    

    ** 1.2 三目运算符**
    - swift中的三目运算符和oc写法差不多 大家看一眼应该就明白了.

    oc版
        int a = 10;
        int b = 8; 
        int c = a > b ? a : b
    
    swift版
         var a = 10
         var b = 50
         var result = a > b ? a : b
         print(result)
    

    **1.3 switch语句 **
    - Switch作为选择结构中必不可少的语句也被加入到了Swift中
    - 只要有过编程经验的人对Switch语句都不会感到陌生
    - 但苹果对Switch进行了大大的增强,使其拥有其他语言中没有的特性
    - 不同之处:
    1. switch后可以不跟()
    2. case后可以不跟break(默认会有break)
    3. 不加break 不会有case穿透效果
    4. 如果想要有穿透效果加个关键字 fallthrough 就会造成穿透了
    5. switch支持多种数据类型 :浮点型 字符串子类的都可以

    oc 版
        int num = 10086;
        switch (num) {
            case 10010:
                NSLog(@"我是联通,谢谢");
                break;
            case 10086:
                NSLog(@"我是移动,呵呵");
            default:
                NSLog(@"那我就是电信喽");
                break;
             }
    
    swift版
           let sex = 0
           switch sex {
           case 0 :
              print("男")
           case 1 :
              print("女")
           default :
              print("其他")
          }
        
    还有其他的写法:
         let sex = 0 
         switch sex {
         case 0, 1:
             print("正常人")
         default:
             print("其他")
         }
    穿透的写法
         switch sex {
         case 0:
              fallthrough
         case 1:
            print("正常人")
          default:
            print("其他")
        }
    
    浮点型的switch判断
        let f = 3.14
        switch f {
        case 3.14:
            print("π")
        default:
            print("not π")
        }
    
    字符串的就不举例了  差不多的
    
    • 补充 : switch支持区间判断
      • swift中的区间常见有两种
        1.半开半闭区间:0..<10 表示:0~9,不包括10
        2.闭区间:0...10 表示:0~10
       let score = 88
        switch score {
        case 0..<60:
            print("不及格")
        case 60..<80:
            print("几个")
        case 80..<90:
            print("良好")
        case 90..<100:
            print("优秀")
        default:
            print("满分")
        }
    

    2- 循环语句

    • for循环语句
      提示:swift中for后面不需要加小括号
    oc版
    for (int i = 0; i < num ; ++i) {
            <#statements#>
        }
        for (<#type *object#> in <#collection#>) {
            <#statements#>
        }
    
    swift版
       // 传统写法
       for var i = 0; i < 10; i++ {
            print(i)
        }
    
       //区间类型
        for i in 0..<10 {
            print(i)
        }
        
        for i in 0...10 {
            print(i)
        }    return 0;
    
      //不需要下标参数的时候  可以用下划线代替 在swift的其他方法中也通用
         for _ in 0..<10 {
            print("hello")
         }
    
    • while/do while循环语句
      • while的判断句必须有正确的真假,没有非0即真
      • while后面的()可以省略
    oc版
        int a = 10;
        while (a >0) {
           a --;
         }
        NSLog(@"a");
    
    swift版
        var a = 0
        while a < 10 {
             a++
        }
    
       注意这里没有do这个关键字了 改成 repeat    
       let b = 0
       repeat {
          print(b)
          b++
         } while b < 20
    
    以前的文章

    Swift学习历程01 - swift基础 http://www.jianshu.com/p/c91c64c34e19

    今天就先写这些了,还有其他事,还有一些小伙伴私信我,问我的微博 微信 ,我以后就统一在结尾都贴上吧!
    博客:http://www.cnblogs.com/hongdongheng
    微博:http://weibo.com/u/3041860075
    微信:nan46825
    希望小伙伴多多留言和点赞,和我交流.

                                                     写于2016年4月27日晚

    相关文章

      网友评论

        本文标题:Swift学习历程02 - 判断语句 循环语句

        本文链接:https://www.haomeiwen.com/subject/tbgcrttx.html