0Pricing
Zig Academy · レッスン

break、continue、ラベル付きループ

ラベルでループを正確に制御します。

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

2つのループ制御

どのループ内でも、breakはループ全体を終了し、continueは次の反復へ移ります。これらを使って処理の流れを細かく制御できます。🎛️

breakはすぐに抜ける

breakが実行されると、ループは直ちに停止し、ループ直後の行から実行が再開されます。本体の残りは何も実行されません。

for (items) |x| {
    if (x == 0) break;
    use(x);
}

continueは先へスキップする

continueは現在の回の残りを中止し、次の反復へ進みます。ループ自体は実行を続けます。

for (items) |x| {
    if (x < 0) continue;
    total += x;
}

最も内側のループを対象にする

デフォルトでは、breakとcontinueはその周囲にある最も内側のループだけに作用します。外側のループは何も起きなかったかのように実行を続けます。

ループに名前を付ける

名前とコロンを使って、ループにラベルを付けられます。そのラベルを使うと、より深い位置から対象のループを指定できます。

outer: for (rows) |row| {
    for (row) |cell| {
        check(cell);
    }
}

ラベルへbreakする

break :outerと書くと、ネストしたループの内側から名前付きの外側ループを直接終了できます。1つの文で両方の階層を抜けられます。

outer: for (rows) |row| {
    for (row) |cell| {
        if (cell == target) break :outer;
    }
}

ラベルへcontinueする

continue :outerを使うと、ラベル付きの外側ループの次の反復へ移れます。内側のループの残りは直ちに放棄されます。

ラベルはフラグの代わりになります

ラベルがなければ、foundフラグを設定し、各ループの後で確認することがあります。ラベル付きbreakを使えば、その定型処理をなくし、より明確に書けます。

ラベル付きbreakは値を返す

ラベル付きループは式にもできます。break :outer valueで、その値をラベル付きループ全体の結果として返せます。

const hit = outer: for (rows) |row| {
    for (row) |c| {
        if (c == target) break :outer c;
    }
} else 0;

ブロックにもラベルを付けられます

ラベルを付けられるのはループだけではありません。通常のブロックにもラベルを付けられ、値を伴うbreakによってそのブロックを式にできます。

const x = blk: {
    const t = compute();
    break :blk t * 2;
};

ネストを浅く保つ

ラベル付き制御は強力ですが、ループを深くネストすると可読性が損なわれます。ラベルは、コードが分かりやすくなる場合に使い、絡み合ったコードの言い訳にはしないでください。

クイックチェック

内側のループから、outerという名前の外側のループを抜けたいとします。どの文を使えばよいでしょうか?

まとめ

breakとcontinueを習得しました。デフォルトでは最も内側のループを対象にし、ネストにはラベル付きループを使い、値を返すラベル付きbreakやラベル付きブロックも使えます。🎯

よくある質問

「break、continue、ラベル付きループ」レッスンは無料ですか?

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

「break、continue、ラベル付きループ」で何を学びますか?

ラベルでループを正確に制御します。 ブラウザで直接実行するハンズオンコードでZig Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

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

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

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

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

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

  1. 文と式としてのif
  2. whileループとcontinue式
  3. 範囲と項目に対するforループ
  4. break、continue、ラベル付きループ
← Zig Academyに戻る