iT邦幫忙

2022 iThome 鐵人賽

DAY 12
0
自我挑戰組

初入Swift新手村的旅程系列 第 12

Day12 Swift語法( 11 ) 流程跳轉

  • 分享至 

  • xImage
  •  

continue

continue用於結構中,其作用是跳過本次循環,並不是跳出迴圈

for index in 0...3{
if index == 2{
    continue
}
    print("第(index)次")
}
// 印出 第0次  第1次 第3次

創建了兩層結構,內層利用continue進行跳轉,MyLabel是外層標籤,因此這個程式碼會跳過index = 1的迴圈,直接開始index = 2。

MyLabel:for indexI in 0...2 {
for indexj in 0...2 {
if indexI == 1{
    continue MyLabel
    }
    print("第(indexI) (indexj) 次")
  }
}
// 印出以下
// 第0 0 次
// 第0 1 次
// 第0 2 次
// 第2 0 次
// 第2 1 次
// 第2 2 次

break

break是用來中斷語句,和continue不同的是break會直接中斷包含他的結構。

for index2 in 0...3 {
if index2 == 2{
    break
}
    print("第(index2)次")
}
// 印出以下
// 第0次
// 第1次
// 後面會直接中斷

break也可以利用指定標籤的方式,中斷其結構

MyLabel:for indexJ in 0...3 {
for indexk in 0...3 {
if indexJ == 2{
    break MyLabel
}
    print("第(indexJ) (indexk) 次")
    }
}
// 印出以下 indexJ = 2之後的都會被中斷
//第0 0 次
//第0 1 次
//第0 2 次
//第0 3 次
//第1 0 次
//第1 1 次
//第1 2 次
//第1 3 次

fallthrough

fallthrough是Swift中特有的控制語句,原本的switch case在匹配到對應的case值,就會自動結束後面的動作,如果開發中需要不中斷其結構,就可以利用fallthrough來達到其效果。

var tuple = (0,0)
switch tuple {
case (0,0):
    print("sure")
    fallthrough
// 會繼續執行下面的case
case (_,0):
    print("sim")
    fallthrough
case (0...3,0...3):
    print("SIM")
default:
    print("")
}

throw

throw語句用來進行異常地拋出,但拋出的也要進行處理,不然還是會中段報錯,有關拋出異常以及處理異常的部分後面會介紹。
定義異常

enum MyError: Error{
case errorOne
case errorTwo
}
func newFunc() throws {
    throw MyError.errorOne
    // 拋出異常
}

guard

guard else的作用是確保某個條件成立才允許後面的程式執行。

func myFuncTwo(param: Int) {
guard param > 0 else {
    return
}
print("another")
}

接下來,是函數的介紹


上一篇
Day11 Swift語法( 10 ) 流程控制
下一篇
Day13 Swift 函數 Function - 1
系列文
初入Swift新手村的旅程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言