English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
この記事では、continue文を使用してプログラムの制御を移行する方法について学びます。
ループや条件文を使用する際に、ループ内の特定の文をスキップしたり、テスト式を確認しないでループを終了する必要があることがあります。
この場合、breakとcontinue文を使用します。詳細については、このページを訪れてくださいbreak文のさらに詳しい情報
continue文はループまたはswitch文内の文の実行を停止し、ループのテスト式に戻って再評価します。
continue文の文法は以下の通りです:
continue
for i in 1...5 { if i == 4 { continue } print("i = \(i)") }
このプログラムを実行すると、出力は以下のようになります:
i = 1 i = 2 i = 3 i = 5
上記のプログラムでは、反復するシーケンスの範囲は1まで5。
iの値はrange()に設定されます1)の最初の数字があり、各反復で範囲の次の数字に更新されます。
ループにはi = = 4のif文。式がtrueを評価するとき(第4次の反復でcontinue文を実行し、print("i = \(i)"の実行をスキップし、次の反復(i = 5)。
var intialLevel:Int = -5, finalLevel:Int = 2 var currentLevel:Int = intialLevel while currentLevel < finalLevel { if intialLevel < 0 { print("始めのレベルは正数でなければなりません") intialLevel = 0 currentLevel = intialLevel continue //現在の実行をスキップ } currentLevel += 1 print("next level") } print("whileループの外")
このプログラムを実行すると、出力は以下のようになります:
始めのレベルは正数でなければなりません 次のレベル 次のレベル whileループの外
上記のプログラムでは、whileループはcurrentLevelがfinalLevelより小さいまで実行されます。initialLevelに割り当てられた値は-5そして、0より小さいため、if内部の文を実行します。
プログラムがcontinue文に到達すると、whileループの文をスキップし、currentLevel<finalLevelの条件を再チェックします。
for j in 1...2 { for i in 1...5 { if i == 4 { continue } print("i = \(i)") } print("j = \(j)") }
このプログラムを実行すると、出力は以下のようになります:
i = 1 i = 2 i = 3 i = 5 j = 1 i = 1 i = 2 i = 3 i = 5
上のプログラムでは、if i==4中のcontinue文は、内部のforループ中のprint("i=\(i)"の実行をスキップします。しかし、for i in 1...5 外部ループの実行
しかし、外側のループにもcontinueを使いたい場合、Swiftでラベル文を使用する必要があります。
ラベル前置の(label:Statement)形式の文はラベル文と呼ばれます。ラベルは識別子であり、後でbreakやcontinue文で参照することができます。
ここでは、labelが識別子です。continue文が実行されると、プログラムはループ中のcoeの残りの部分をスキップし、labelから始まる文にジャンプします。
outerloop: for j in 1...2 { innerloop: for i in 1...5 { if i == 4 { continue outerloop } print("i = \(i)") } print("j = \(j)") }
このプログラムを実行すると、出力は以下のようになります:
i = 1 i = 2 i = 3 i = 1 i = 2 i = 3
上記のプログラムでは、2つのタグの文 outerloop: for j in があります。 1...2 および innerloop: for i in 1...5。
タグ名outerloopおよびinnerloopはcontinue文と一緒に使用できます。
プログラムでは、continue outerloop 文を使って内外ループ中の文の実行をスキップしました。このプロセスでは、i と j の値が範囲の次の数字に更新されます。