if-else
- if後面的條件可以省略小括號
- if條件後面的大括號不可以省略
- if後面的條件只能是Bool類型
-------------------------------------------------------------------------------------------------------------------------------
while
- repeat-while相當於C語言中的do-while
- 這裏不用num--,是因爲從Swift3開始,去除了自增(++)、自減(--)運算符
-------------------------------------------------------------------------------------------------------------------------------
for
- 閉區間運算符:a...b, a <= 取值 <= b
- 也可以用一個常量來表示區間
- 也可以用兩個常量(或變量)來表示區間
- i默認是let,有需要時可以聲明爲var
- 不用i的時候,可以用_省略,否則會報警告
- 半開區間運算符:a..<b, a <= 取值 < b
- for 區間運算符用在數組上
- 單側區間:讓區間朝一個方向儘可能的遠
三個數組區間表示2到無窮,負無窮到2,負無窮到小於2
range表示負無窮到5:
區間類型
- 定義整型區間類型
- 定義字符串型區間類型(雙引號例如"a"默認類型是字符串類型,只有加上Characte纔是字符類型)
- 定義字符型區間類型("\0"..."~"表示0~127)
- 帶間隔的區間值
-------------------------------------------------------------------------------------------------------------------------------
switch
- case, default後面不能寫大括號{}
- 默認可以不寫break,並不會貫穿到後面的條件
- 使用fallthrough可以實現貫穿效果
可以看到在case 1加了fallthrough後,就回貫穿到case 2同時輸出case 2的結果,但由於case 2沒有寫fallthrough,所以不會貫穿到default,不會輸出default的結果
- switch注意點
- switch必須保證能處理所有情況
2. case, default後面至少有一條語句
3. 如果不想做任何事,加個break即可
4. 如果能保證已處理所有情況,也可以不必使用default
- 複合條件
也就是case的條件可以有多個(類似於使用fallthrough),同時switch也支持Character,String類型
- 區間匹配,元組匹配
(_, 0)表示左邊可以是任意值,右邊是0的元祖
可以使用下劃線_忽略某個值
關於case的匹配問題,屬於模式匹配(patter Matching) 的範疇
- 值綁定
下面的代碼表示匹配到右邊爲0的元祖,並將左邊的值賦值符合條件的case裏
最後的輸出爲:on the x-axis with an x value of 2
必要時let也可以改爲var
- where
這裏主要是把point(1, 1)傳給(x, y)然後通過where判斷關於xy的條件是否成立, 最後的結果爲 on the line x == -y
這裏是將所欲大於0的num相加,結果爲60
-------------------------------------------------------------------------------------------------------------------------------
標籤語句
通過標籤語句,我們可以實現從內部的for循環直接退出最外層for循環