Swift:控制流

Control Flow

github:Swift基礎實例
github:SwiftBasicTableView

簡介

條件語句用 ifswitch ;循環(huán)語句使用 for-in,for,while,repeat-while馆纳。其中兽愤,條件和循環(huán)變量兩側(cè)不用寫圓括號()纽绍,但是大括號{}不能蚀客琛:

let individualScores = [22,33,55,66]
var teamScore = 0
for score in individualScores {
    if score > 50 {
        teamScore+=3
    }
    else {
        teamScore+=1
    }
}
print(teamScore)
條件語句
  1. if
    if 聲明中,條件必須是一個 bool 表達式踢故。比如上面代碼中 if score > 50 { ... } 是對的孝常,如果變?yōu)?code>if score { ... } 則會報錯 Type 'Int' does not conform to protocol 'BooleanType'状共。

  2. iflet 可以搭配一個可選值進行使用,之所以稱為可選值尘应,是因為這個值要么包含一個值惶凝,要么是一個空 nil。在一個值的類型后加上一個問號 ? 表示此值可選:

var optionalString : String? = "Hello kitty"
print(optionalString == nil)  
var optionalName: String? = "Swift"
var greeting = "Hello!"
if let name = optionalName {
    greeting = "Hello, \(name)"
}
else {
    print(optionalName)
}
  • 上面 if 條件中犬钢,如果 optionalName 為空苍鲜,則執(zhí)行 else,如果不為空玷犹, 那么會將值賦給 let 后面的 name混滔,這樣 name 就有了一個有效值
  1. 缺省值表達式
    可以用操作符 ?? 來提供一個默認值,當值為空的時候歹颓,使用提供的默認值:
let nickName: String? = nil
let fullName: String = "Swift"
let informalGreeting = "Hi \(nickName ?? fullName)"
  • 注意 ?? 前后都要有空格
循環(huán)語句
  1. switch
    switch 支持任何類型的數(shù)據(jù)以及多樣的比較操作符
let vegetable = "red pepper"
switch vegetable {
    case "celery":
        print("Add some raisins")
    case "cucumber", "watercress":
        print("That would make a good tea sandwich")
    case let x where x.hasSuffix("pepper"):
        print("Is it a spicy \(x)?")
    
    default:
        print("Everything tastes good in soup.")
  • 每一個 case 后都不需要寫 break 坯屿,當其中一個 case 成立時,程序就會執(zhí)行相應 case 里的代碼晴股,執(zhí)行完后愿伴,就會直接退出 switch 循環(huán)
  • 第二個 case 中,只要滿足一個條件电湘,就會執(zhí)行里面的 print
  1. for-in
    for-inOC 語言中的格式 for (<#type *object#> in <#collection#>)隔节,咋 swift 語言中,type 是選填的:
var shoppingList = ["fish","water"]
for name in shoppingList {
   print(name)
}
  • 加上正確的 type 也是不會錯的 for name: String in shoppingList{...}
  1. for-in 迭代字典
    for-in 中寂呛,可以用一對名字(key,value)來表示字典中的鍵值對 key-value 怎诫,進行迭代字典中的值,字典是無序的贷痪,所以鍵值對的迭代順序也是隨機的:
var largest = 0
var largestKind = ""
let interestingNumbers = ["Prime":[2,3,5,7],"Square":[1,4,9,16,25]]
for (kind, numbers) in interestingNumbers {
    for number in numbers {
        if number > largest {
            largestKind = kind
            largest     = number
        }
    }
}
print(largest)
print(largestKind)
  • 打印得到 25Square
  1. for-in 和范圍符 ..<
    valueOne..<valueTwo 的取值范圍是包含valueOne幻妓,不包括valueTwo。下面的兩段代碼都是運算 5!
   var factorial = 5
   for i in 1..<5 {
       factorial = (5-i)*factorial
   }
   print(factorial)

   var factorialTwo = 5
   for var i = 1; i < 5; i++ {
       factorialTwo = (5-i)*factorialTwo
   }
   print(factorialTwo)
  • 注意 ..< 的前后都沒有空格
  • 符號 ... 包含前后兩個值
  1. while
    while 來重復執(zhí)行一塊代碼劫拢,直到條件發(fā)生改變肉津。條件可以放在最后强胰,這樣 while 會至少執(zhí)行一次。
   var whileNumber = 2
   while whileNumber < 3 {
       whileNumber += 1
   }
   print(whileNumber)

   var whileNumber2 = 2
   repeat {
       whileNumber2 += 1
   } while whileNumber2 < 2
   print(whileNumber2)
  • whileNumber 等于 3妹沙,whileNumber2 也等于 3
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末偶洋,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子距糖,更是在濱河造成了極大的恐慌玄窝,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悍引,死亡現(xiàn)場離奇詭異恩脂,居然都是意外死亡,警方通過查閱死者的電腦和手機趣斤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門俩块,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人唬渗,你說我怎么就攤上這事典阵。” “怎么了镊逝?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵壮啊,是天一觀的道長。 經(jīng)常有香客問我撑蒜,道長歹啼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任座菠,我火速辦了婚禮狸眼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘浴滴。我一直安慰自己拓萌,他們只是感情好,可當我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布升略。 她就那樣靜靜地躺著微王,像睡著了一般。 火紅的嫁衣襯著肌膚如雪品嚣。 梳的紋絲不亂的頭發(fā)上炕倘,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天,我揣著相機與錄音翰撑,去河邊找鬼罩旋。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的涨醋。 我是一名探鬼主播瓜饥,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼浴骂!你這毒婦竟也來了压固?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤靠闭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后坎炼,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體愧膀,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年谣光,在試婚紗的時候發(fā)現(xiàn)自己被綠了檩淋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡萄金,死狀恐怖蟀悦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情氧敢,我是刑警寧澤日戈,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站孙乖,受9級特大地震影響浙炼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜唯袄,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一弯屈、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧恋拷,春花似錦资厉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至阎抒,卻和暖如春酪我,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背且叁。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工都哭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓欺矫,卻偏偏與公主長得像纱新,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子穆趴,可洞房花燭夜當晚...
    茶點故事閱讀 45,860評論 2 361

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

  • 一脸爱、for循環(huán) for-in循環(huán),遍歷集合里面的每個元素: 當不需要區(qū)間序列內(nèi)的值未妹,可以用_來忽略對值的訪問: 遍...
    EndEvent閱讀 423評論 0 2
  • Swift 提供了類似 C 語言的流程控制結(jié)構(gòu)簿废,包括可以多次執(zhí)行任務的for和while循環(huán),基于特定條件選擇執(zhí)行...
    窮人家的孩紙閱讀 706評論 1 1
  • Swift提供了多種控制流聲明络它。包括while循環(huán)來多次執(zhí)行一個任務族檬;if,guard和switch聲明來根據(jù)確定...
    BoomLee閱讀 1,958評論 0 3
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile麗語閱讀 3,845評論 0 6
  • 橄欖油在地中海沿岸國家有幾千年的歷史扫尖,在西方被譽為“液體黃金”,“植物油皇后”掠廓,“地中海甘露”换怖, 原因就在于其極...
    蓮藕精靈閱讀 359評論 0 0