Swift Academy · レッスン

ラベル付き文

名前付きラベルで外側のループを対象にします。

レッスン 2/413 ステップ

「ラベル付き文」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全4レッスンが含まれています。

ラベルとは

ステートメントラベルはループに名前を付けるもので、break や continue の対象を正確に指定できます。

outer: for i in 1...3 {
    print("row", i)
}

ラベルの構文

ラベル名の後にコロンを付け、ループキーワードの直前に記述します。

search: for n in 1...5 {
    print(n)
    if n == 3 { break search }
}

命名規則

ラベルは通常の識別子です。outer、rowLoop、search のように、内容が分かる名前を選びます。

rowLoop: for r in 1...2 {
    print("processing row", r)
}

ラベル付き break

break label は、最も内側のループではなく、指定したラベルのループを終了します。

outer: for i in 1...3 {
    for j in 1...3 {
        if j == 2 { break outer }
        print(i, j)
    }
}

ラベル付き continue

continue label は、ラベル付きループの次の反復へ移ります。

outer: for i in 1...3 {
    for j in 1...3 {
        if j == 2 { continue outer }
        print(i, j)
    }
}

while ループのラベル

while を含め、どのループにもラベルを付けられます。

var i = 0
mainLoop: while i < 5 {
    i += 1
    if i == 3 { break mainLoop }
    print(i)
}

ラベルが役立つ理由

ラベルがない場合、break は最も内側のループだけを終了します。ラベルを使えば、外側のループを直接制御できます。

grid: for x in 0...2 {
    for y in 0...2 {
        if x + y == 3 { break grid }
        print(x, y)
    }
}

複数のラベル

ネストした複数のループにラベルを付け、それぞれを個別に対象にできます。

rows: for r in 1...2 {
    cols: for c in 1...2 {
        if c == 2 { continue rows }
        print(r, c)
    }
}

ラベルで意図を明確にする

適切な名前のラベルは、ジャンプの対象となるループを示すため、ネストしたコードの読みやすさが向上します。

scan: for value in [3, 6, 9, 12] {
    if value > 8 { break scan }
    print(value)
}

ラベルのスコープ

ラベルが見えるのは、そのラベルが付いたループ内だけです。現在の文を囲んでいないラベルへ break することはできません。

first: for a in 1...2 {
    print("a", a)
    second: for b in 1...2 {
        if b == 2 { break first }
        print("b", b)
    }
}

条件との組み合わせ

ラベルは条件と自然に組み合わせられ、多次元のデータに対する検索と停止のロジックを実装できます。

let matrix = [[1, 2], [3, 4]]
var target = -1
find: for row in matrix {
    for v in row {
        if v == 3 {
            target = v
            break find
        }
    }
}
print(target)

クイックチェック

ラベル付きステートメントを確認しましょう。

まとめ

ループの前に name: のようなラベルを付けると、break name や continue name で最も内側のループではなく、その特定のループを対象にできます。ラベルのスコープはそのループ内に限られ、ネストしたループの制御対象を明示できます。

outer: for i in 1...2 {
    for j in 1...2 {
        if j == 2 { continue outer }
        print(i, j)
    }
}
無料で開始

AI チューターと学ぶ Swift — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
122
レッスン
409

よくある質問

「ラベル付き文」レッスンは無料ですか?

はい。「ラベル付き文」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全4レッスンが含まれています。

「ラベル付き文」で何を学びますか?

名前付きラベルで外側のループを対象にします。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Swift Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「ラベル付き文」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSwift Academyレッスンでコードを書いて実行できますか?

はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. breakとcontinueの基礎
  2. ラベル付き文
  3. ネストしたループから抜ける
  4. switchコンテキストでのループ制御
← Swift Academyに戻る