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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 文と式としてのif
- whileループとcontinue式
- 範囲と項目に対するforループ
- break、continue、ラベル付きループ