OC与斯威夫特的区分三(条件语句),ocswift条件语句

OC与Swift的界别三,OC斯维夫特差别三

11.swift中的switch结构

区别一:

oc中switch条件只可以够放整数

swift中switch条件能够放大约任何数据类型

区别二:

oc中每二个case中应有break,若无break,则会接二连三向下贯穿实行case直到碰见break跳出switch结构

swift中无需在case分支最终增多break语句,该case分支施行到位后,会跳出switch结构

区别三:

oc中不是每一种case前边总得有可实行语句,即使有个别case分支中没有可举办语句和break,则该支行将会推行其下部近日的二个有可举办语句的分层中代码,以此完成多规格相当

swift中各类case后边总得都有可施行语句,

ps:此分歧是因为分裂二的存在,swift中代表多规格格外的地方接纳的语法为,case后跟多少个原则,用逗号隔开分离。

除此以外,swift的case中能够填充二个限制作为相称原则,如case a…b:

区别三:

oc中switch中default不是不可缺少的

swift中switch中default是必备的

 

swift中switch语句能够运用where来扩张决断典型

如:

var point = (10,-10)

switch point{

  case let(x,y) where x == y :

             //

      case let(x,y) where x == -y :

            //

       default :

    //

}

swift中switch语句能够利用fallthrough关键字来实践贯穿操作,即执行完当前case后,会跟着实行fallthrough前边的case活着default语句,类似于oc中case未有写break语句,可是采纳了fallthrough,其背后的case条件中将不可能定义常量或变量,即fallthrough后边的case条件不可能动用类似下边代码中let
(x,y) 那样的变量来收纳point,不然会有语法错误。

11.swift中的switch结构 分歧一: oc中switch条件只可以够放整数
swift中switch条件可以放差非常少任何数据类型 分化二:…

OC与斯威夫特的界别三(条件语句),ocswift条件语句

11.swift中的switch结构

区别一:

oc中switch条件只好够放整数

swift中switch条件能够放差不离任何数据类型

区别二:

oc中每贰个case中应该break,若无break,则会继续向下贯穿实施case直到碰见break跳出switch结构

swift中没有须要在case分支最终加多break语句,该case分支实施到位后,会跳出switch结构

区别三:

oc中不是各样case前边总得有可进行语句,倘使有些case分支中未有可实行语句和break,则该支行将会执行其下部如今的三个有可实行语句的道岔中代码,以此完结多规格相当

swift中各种case前边总得都有可实践语句,

ps:此不相同是因为差距二的留存,swift中意味着多规格十一分的状态选拔的语法为,case后跟五个规范,用逗号隔断。

其余,swift的case中能够填充三个限量作为相配原则,如case a…b:

区别三:

oc中switch中default不是不可或缺的

swift中switch中default是必备的

 

swift中switch语句能够动用where来增添决断标准

如:

var point = (10,-10)

switch point{

  case let(x,y) where x == y :

             //

      case let(x,y) where x == -y :

            //

       default :

    //

}

swift中switch语句能够运用fallthrough关键字来奉行贯穿操作,即试行完当前case后,会跟着试行fallthrough前面包车型客车case活着default语句,类似于oc中case未有写break语句,不过选拔了fallthrough,其背后的case条件少校无法定义常量或变量,即fallthrough前边的case条件不能够应用类似上边代码中let
(x,y) 那样的变量来收纳point,不然会有语法错误。

11.swift中的switch结构 差异一: oc中switch条件只好够放整数
swift中switch条件能够放大约任何数据…

一、switch语句在Swift和C中的差异
  • 在C语言中,若是case的终极未有break,就能够跟着试行下多个case
  • 在Swift中,无需在每一个case后边扩充break,实践完case对应的代码后默认会自动退出switch语句
  • 在Swift中,case前边必有可实践的代码
    let grade = “B”
    switch grade {
    case “A”:
    print(“卓越等第”)
    case “B”:
    print(“卓绝品级”)
    case “C”:
    print(“中等品级”)
    default:
    print(“未知品级”)
    }
  • 1个case前边能够填充四个分外原则,条件之间用逗号,隔绝
    let score = 95
    switch score/10 {
    case 10, 9:
    print(“优秀”)
    case 8, 7, 6:
    print(“及格”)
    default:
    print(“不及格”)
    }
    //打字与印刷结果是:卓越
  • case前面能够填充叁个限制作为相称原则
    let score = 95
    switch score{
    case 90…100:
    print(“优秀”)
    case 60…89:
    print(“及格”)
    default:
    print(“不及格”)
    }
    //打字与印刷结果是:杰出
  • switch要保管拍卖全部不小恐怕的情事,不然编写翻译器间接报错,因而,default一定要加。
  • case还能用来匹配元组
    let point = (1, 1)
    switch point {
    case (0, 0) :
    print(“这些点在原点上”)
    case (_, 0) :
    print(“这一个点在x轴上”)
    case (0, _金莎娱乐手机版,) :
    print(“那几个点在y轴上”)
    case (-2…2, -2…2) :
    print(“这么些点在矩形框内”)
    default:
    print(“那一个点在别的职位”)
  • 在case相称的还要,能够将switch中的值绑定给二个一定的常量或变量,以便在case前面包车型地铁言辞中保用
    let point = (10, 0)
    switch point {
    case (let x, 0) :
    print(“那一个点在x轴上,x值是(x)”)
    case (0, let y) :
    print(“这些点在y轴上,y值是(y)”)
    case let (x, y) :
    print(“这一个点的x值是:(x), y值是(y)”)
    }
  • switch语句能够运用where来扩大判定的规格
    let point = (10, 0)
    switch point {
    case let (x, y) where x == y :
    print(“那个点在y = x直线上”)
    case let (x, y) where x == -y :
    print(“那几个点在y = -x直线上”)
    default:
    print(“这几个点不在这2条线上”)
    }
  • fallthrough –
    试行完当前case之后,会跟着实施fallthrough前面包车型地铁case可能default语句
    let num = 20
    var str = “(num)是个”
    switch num{
    case 0…50 :
    str += “0 ~ 50之间的”
    fallthrough
    default:
    str += “整数”
    }
  • fallthrough前边的case条件不能够定义变量和常量

*分支if*

* Swift 提供了就像 C 语言的流程序调整制结构(if/switch/for/while/dowhile)

* 只好以Bool作为规范语句

* 条件语句无需加()

* {}不能简单

* swift中if分支的格局能够选择where语句来判断额外的口径

* 其它跟OC中if一样

let intValue = 10

” if intValue > 2{

”    print(“yes”)

” }

” //用where额外剖断

” let testValue: Int? = 10

” if let d = testValue where testValue > 9{

”    print”满足了”

” }

*分支switch*

* OC中case后边总得抬高break不然会贯通,swift不用

* swift中一经想选用贯穿必须运用 fallthrough

* OC中能够不写default,swift中唯有满意全体准则技术忽视default

* OC中default能够随意放,swift不可能

* OC中case中定义变量要求加大括号,不然效用域混乱,swift不用加大括号

* swift的switch能够判别距离和元祖

* swift中case分支的形式能够使用where语句来剖断额外的标准化

细心:swift中各样case分支都必须带有至少一条语句, 不像 C
语言里的switch语句,在 斯威夫特 中,switch语句不会同不时候包容多个条件

” //OC中写法

” switch(rank){

” case “A”:

” case “B”:

”    NSLog(@”还不错”)

”    break

” case “C”:

”    NSLog(“差”)

”    break

” }

” //swift 写法 default不能够随意放,只好放在最终

” var rank = “A”

” switch rank{

” //    default:

” //    print(“未有评级”)

” case “A”, “B”:

”    var num = 10

”    print(“优”)

”    fallthrough

” case “C”:

”    print(“差”)

” default:

”    print(“未有评级”)

” }

相关文章