ラベル付き文
名前付きラベルで外側のループを対象にします。
「ラベル付き文」は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フィードバックを取得できます。ローカル設定は不要です。