程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> Swift編程中的switch...case語句實例解析

Swift編程中的switch...case語句實例解析

編輯:更多關於編程

Swift編程中的switch...case語句實例解析。本站提示廣大學習愛好者:(Swift編程中的switch...case語句實例解析)文章只能為提供參考,不一定能成為您想要的結果。以下是Swift編程中的switch...case語句實例解析正文


Swift中的switch...case語句可以斷定對象類型, Objective-C中則必需是整數。
弗成以穿透,可以不寫break,

var rank = "A"
switch rank{
  case "A": //相當於if
    print("優")
  case "B": // 相當於else if
    print("優")
  case "C": // 相當於else if
    print("優")
  default: // 相當於else
    print("沒有評級")
}


由於不克不及穿透所以不克不及這麼寫

var rank1 = "A"
switch rank1{
  case "A":
  case "B":
    print("優")
  case "C":
    print("優")
  default:
    print("沒有評級")
}


只能這麼寫

var rank1 = "A"
switch rank1{
  case "A", "B": // 留意OC不克不及如許寫
    print("優")
  case "C":
    print("差")
  default:
    print("沒有評級")
}

不克不及不寫default

var rank2 = "A"
switch rank2{
  case "A":
    print("優")
  case "B":
    print("良")
  case "C":
    print("差")
}

default地位只能在最初

var rank3 = "A"
switch rank3{
  default:
    print("沒有評級")
  case "A":
    print("優")
  case "B":
    print("良")
  case "C":
    print("差")
}

在case中界說變量不消加年夜括號

var rank4 = "A"
switch rank4{
  case "A":
    var num = 10
    print("優")
  case "B":
    print("良")
  case "C":
    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")
}

值綁定

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

fallthrough症結字
Swift說話中的switch不會從上一個case分支落入到下一個case分支中。相反,只需第一個婚配到的case分支完成了它須要履行的語句,全部switch代碼塊完成了它的履行。比擬之下,C說話請求你顯示的拔出break語句到每一個switch分支的末尾來阻攔主動落入到下一個case分支中。Swift說話的這類防止默許落入到下一個分支中的特征意味著它的switch 功效要比C說話的加倍清楚和可猜測,可以免有意識地履行多個case分支從而激發的毛病。
 
假如你確切須要C作風的落入(fallthrough)的特征,你可以在每一個須要該特征的case分支中應用fallthrough症結字。上面的例子應用fallthrough來創立一個數字的描寫語句。

let integerToDescribe = 5 
var description = "The number \(integerToDescribe) is" 
switch integerToDescribe { 
case 2, 3, 5, 7, 11, 13, 17, 19: 
  description += " a prime number, and also" 
  fallthrough 
default: 
  description += " an integer." 
} 
println(description) 
// prints "The number 5 is a prime number, and also an integer." 

這個例子界說了一個String類型的變量description而且給它設置了一個初始值。函數應用switch邏輯來斷定integerToDescribe變量的值。當integerToDescribe的值屬於列表中的質數之一時,該函數添加一段文字在description後,來注解這個是數字是一個質數。然後它應用fallthrough症結字來"落入"到default分支中。default分支添加一段額定的文字在description的最初,至此switch代碼塊履行完了。
 
假如integerToDescribe的值不屬於列表中的任何質數,那末它不會婚配到第一個switch分支。而這裡沒有其他特殊的分支情形,所以integerToDescribe婚配到包括一切的default分支中。
 
當switch代碼塊履行完後,應用println函數打印該數字的描寫。在這個例子中,數字5被精確的辨認為了一個質數。
 
NOTE:fallthrough症結字不會檢討它下一個將會落入履行的case中的婚配前提。fallthrough簡略地使代碼履行持續銜接到下一個case中的履行代碼,這和C說話尺度中的switch語句特征是一樣的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved