Swift - switch語句

一、switch語句在Swift和C中的區(qū)別
  • 在C語言中,如果case的結(jié)尾沒有break,就會接著執(zhí)行下一個case
  • 在Swift中,不需要在每一個case后面增加break,執(zhí)行完case對應(yīng)的代碼后默認會自動退出switch語句
  • 在Swift中,case后面必有可執(zhí)行的代碼
    let grade = "B"
    switch grade {
    case "A":
    print("優(yōu)秀等級")
    case "B":
    print("良好等級")
    case "C":
    print("中等等級")
    default:
    print("未知等級")
    }
  • 1個case后面可以填寫多個匹配條件,條件之間用逗號,隔開
    let score = 95
    switch score/10 {
    case 10, 9:
    print("優(yōu)秀")
    case 8, 7, 6:
    print("及格")
    default:
    print("不及格")
    }
    //打印結(jié)果是:優(yōu)秀
  • case后面可以填寫一個范圍作為匹配條件
    let score = 95
    switch score{
    case 90...100:
    print("優(yōu)秀")
    case 60...89:
    print("及格")
    default:
    print("不及格")
    }
    //打印結(jié)果是:優(yōu)秀
  • 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("這個點在矩形框內(nèi)")
    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 - 執(zhí)行完當前case之后,會接著執(zhí)行fallthrough后面的case或者default語句
    let num = 20
    var str = "(num)是個"
    switch num{
    case 0...50 :
    str += "0 ~ 50之間的"
    fallthrough
    default:
    str += "整數(shù)"
    }
  • fallthrough后面的case條件不能定義變量和常量
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容