Swift邏輯分支

一. 分支的介紹

  • 分支即if/switch/三目運(yùn)算符等判斷語(yǔ)句
  • 通過分支語(yǔ)句可以控制程序的執(zhí)行流程

二. if分支語(yǔ)句

  • 和OC中if語(yǔ)句有一定的區(qū)別
  • 判斷句可以不加()
  • 在Swift的判斷句中必須有明確的真假
    • 不再有非0即真
    • 必須有明確的Bool值
    • Bool有兩個(gè)取值:false/true
// 演練一:
let a = 10

// 錯(cuò)誤寫法:
//if a {
//    print("a")
//}

// 正確寫法
if a > 9 {
    print(a)
}

// 演練二:
let score = 87

if score < 60 {
    print("不及格")
} else if score <= 70 {
    print("及格")
} else if score <= 80 {
    print("良好")
} else if score <= 90 {
    print("優(yōu)秀")
} else {
    print("完美")
}

// 演練三:
// 這個(gè)是可選類型,因?yàn)橹挥新暶鞒煽蛇x類型后,才可以判斷是否為空
// 可選類型會(huì)在后續(xù)講解,可先了解即可
let view : UIView? = UIView()

// 判斷如果view有值,則設(shè)置背景
// 錯(cuò)誤寫法
//if view {
//    view.backgroundColor = UIColor.redColor()
//}

if view != nil {
    view!.backgroundColor = UIColor.redColor()
}

三. 三目運(yùn)算符
Swift中的三目運(yùn)算保持了和OC一致的風(fēng)格

var a = 10
var b = 50

var result = a > b ? a : b
println(result)

四.guard的使用

  • guard是Swift2.0新增的語(yǔ)法
  • 它與if語(yǔ)句非常類似,它設(shè)計(jì)的目的是提高程序的可讀性
  • guard語(yǔ)句必須帶有else語(yǔ)句督勺,它的語(yǔ)法如下:
  • 當(dāng)條件表達(dá)式為true時(shí)候跳過else語(yǔ)句中的內(nèi)容渠羞,執(zhí)行語(yǔ)句組內(nèi)容
  • 條件表達(dá)式為false時(shí)候執(zhí)行else語(yǔ)句中的內(nèi)容,跳轉(zhuǎn)語(yǔ)句一般是return智哀、break次询、continue和throw
guard 條件表達(dá)式 else {
    // 條換語(yǔ)句
    break
}
語(yǔ)句組
  • 例子
var age = 18

func online(age : Int) -> Void {
    guard age >= 18 else {
        print("回家去")
        return
    }

    print("可以上網(wǎng)")
}

online(age)

四.switch分支

  • switch的介紹

    • Switch作為選擇結(jié)構(gòu)中必不可少的語(yǔ)句也被加入到了Swift中
    • 只要有過編程經(jīng)驗(yàn)的人對(duì)Switch語(yǔ)句都不會(huì)感到陌生
    • 但蘋果對(duì)Switch進(jìn)行了大大的增強(qiáng),使其擁有其他語(yǔ)言中沒有的特性
  • switch的簡(jiǎn)單使用

  • 基本用法和OC用法一致

  • 不同之處:

    • switch后可以不跟()
    • case后可以不跟break(默認(rèn)會(huì)有break)
  • 例子:

let sex = 0

switch sex {
case 0 :
    print("男")
case 1 :
    print("女")
default :
    print("其他")
}
  • 簡(jiǎn)單使用補(bǔ)充:
  • 一個(gè)case判斷中,可以判斷多個(gè)值
  • 多個(gè)值以 "," 隔開
let sex = 0

switch sex {
case 0, 1:
    print("正常人")
default:
    print("其他")
}

  • 簡(jiǎn)單使用補(bǔ)充:
    • 如果希望出現(xiàn)之前的case穿透,則可以使用關(guān)鍵字fallthrough
let sex = 0

switch sex {
case 0:
    fallthrough
case 1:
    print("正常人")
default:
    print("其他")
}

Switch支持多種數(shù)據(jù)類型

  • 浮點(diǎn)型的switch判斷
let f = 3.14
switch f {
case 3.14:
    print("π")
default:
    print("not π")
}
  • 支持字符串類型
    • 字符串的使用后面會(huì)詳細(xì)講解
let m = 5
let n = 10
var result = 0

let opration = "+"

switch opration {
    case "+":
        result = m + n
    case "-":
        result = m - n
    case "*":
        result = m * n
    case "/":
        result = m / n
default:
    result = 0
}

print(result)

switch支持區(qū)間判斷

  • 什么是區(qū)間?
    • 通常我們指的是數(shù)字區(qū)間:010,100200
  • swift中的區(qū)間常見有兩種
    • 開區(qū)間:0..<10 表示:0~9,不包括10
    • 閉區(qū)間:0...10 表示:0~10
let score = 88
switch score {
case 0..<60:
    print("不及格")
case 60..<80:
    print("幾個(gè)")
case 80..<90:
    print("良好")
case 90..<100:
    print("優(yōu)秀")
default:
    print("滿分")
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末瓷叫,一起剝皮案震驚了整個(gè)濱河市屯吊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌摹菠,老刑警劉巖盒卸,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異次氨,居然都是意外死亡蔽介,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門虹蓄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人幸撕,你說我怎么就攤上這事薇组。” “怎么了坐儿?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵体箕,是天一觀的道長(zhǎng)专钉。 經(jīng)常有香客問我,道長(zhǎng)累铅,這世上最難降的妖魔是什么跃须? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮娃兽,結(jié)果婚禮上菇民,老公的妹妹穿的比我還像新娘。我一直安慰自己投储,他們只是感情好第练,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著玛荞,像睡著了一般娇掏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上勋眯,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天婴梧,我揣著相機(jī)與錄音,去河邊找鬼客蹋。 笑死塞蹭,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的讶坯。 我是一名探鬼主播番电,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼辆琅!你這毒婦竟也來了漱办?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤婉烟,失蹤者是張志新(化名)和其女友劉穎洼冻,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體隅很,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡撞牢,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了叔营。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屋彪。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖绒尊,靈堂內(nèi)的尸體忽然破棺而出畜挥,到底是詐尸還是另有隱情,我是刑警寧澤婴谱,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布蟹但,位于F島的核電站躯泰,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏华糖。R本人自食惡果不足惜麦向,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望客叉。 院中可真熱鬧诵竭,春花似錦、人聲如沸兼搏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)佛呻。三九已至裳朋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吓著,已是汗流浹背鲤嫡。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留夜矗,地道東北人泛范。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓让虐,卻偏偏與公主長(zhǎng)得像紊撕,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子赡突,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 一对扶、if...else...語(yǔ)句 條件不需要()彼乌,Swift中沒有C語(yǔ)言中的非零即真概念汁展,在邏輯判斷時(shí)必須指明具體...
    magic_pill閱讀 154評(píng)論 0 1
  • @(〓〓 iOS-Swift語(yǔ)法)[Swift 語(yǔ)法] 作者: Liwx 郵箱: 1032282633@qq.c...
    Liwx閱讀 188評(píng)論 0 0
  • 1.分支的介紹分支即if/switch/三目運(yùn)算符等判斷語(yǔ)句通過分支語(yǔ)句可以控制程序的執(zhí)行流程 2.swift和O...
    IIronMan閱讀 189評(píng)論 0 1
  • 1.if分支語(yǔ)句 和OC中if語(yǔ)句有一定的區(qū)別: 判斷句可以不加() 在Swift的判斷句中必須有明確的真假不再有...
    猴子的救兵520閱讀 284評(píng)論 0 0
  • 由北京市團(tuán)委和投資總監(jiān)俱樂部組織的2016年第五期北京青年創(chuàng)業(yè)訓(xùn)練營(yíng)兩天的課程完美結(jié)束端三,在這兩天一夜里汉嗽,認(rèn)識(shí)了許多...
    周光興閱讀 233評(píng)論 0 0