使用if和switch實現條件判斷的功能,使用for-in,for,while和do-while實現循環的功能。條件表達式或循環變量外面的括號是可選的。包住語句體的大括號不能省略。spa
在一個if語句裏,條件必須是一個布爾表達式----這就意味着相似於if score{...}的代碼是錯誤的,而不是隱含的和0進行比較的。索引
你可使用if和let一塊兒來做用於一個值,這個值可能會消失。這些值被表示爲可選的。一個可選值或者包含一個值或者是nil來講明這個值已經消失。在一個變量的類型以後添加一個?來標記這個值是可選的。get
EXPERIMENTit
改變optionalName值爲空,你獲得的greeting的值是什麼?若是optionalName是空的添加一個else從句來設置不一樣的greeting值。io
若是可選的值是nil,條件是false,那麼在大括號裏面的代碼將會跳過。不然,可選值會解包而且賦值給let後的常量,這個常量使得在代碼的語句塊裏的解包值是可用的。變量
Switches支持任意類型的數據和普遍的比較操做。它們不單單是侷限於整型和相等性測試。循環
實驗:試着移除default語句,你會獲得什麼錯誤?遍歷
在執行完和switch條件匹配的代碼以後,程序會從switch語句裏面退出。不會再執行下一個case語句,因此沒有必要顯式的在每條case語句後加上跳出switch語句的代碼。程序
你能夠在for-in 中使用一對變量來遍歷字典中的鍵值對。
實驗:添加其餘的變量來找出哪個數式最大的,最大的數是什麼。
使用while語句來重複的執行代碼塊直到條件改變爲止。循環條件也能夠放在最後面,確保循環至少執行一次。
你能夠在循環中使用一個索引,要麼使用..來聲明一下索引的範圍,要麼明確的指定初始值,條件和增量。下面的兩個循環實現了相同的功能。
使用..指定的範圍不包括上限值,使用...指定的範圍包括兩端的值。