Swift(三):流程控制(if-else, while, for, 區間類型, switch, 標籤語句)

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注意點
  1. 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循環

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章