Menu
Coddy logo textTech

ループラベル

CoddyのRustジャーニー「Fundamentals」セクションの一部 — レッスン 42/75。

Rustにおけるラベルは、ループが入れ子になっている場合に、特定のループをbreakまたはcontinueするのに役立ちます。ループをラベル付けするには、ループの前に'label:を追加します。

例えば:

'outer: for i in 1..=3 {
    'inner: for j in 1..=3 {
        if i * j > 5 {
            break 'outer;
            // 外側のループを終了します
        }
        println!("({}, {})", i, j);
    }
}

この例では、'outer'inner というラベルが付いた2つのネストされたループがあります。ij の積が5より大きい場合、break 'outer; 文が実行され、外側のループを終了します。このコードの出力は次のようになります:

(1, 1)
(1, 2)
(1, 3)
(2, 1)
(2, 2)

同様に、continue 'label; を使用して、指定されたループの次のイテレーションに継続することができます。例えば:

'outer: for i in 1..=3 {
    'inner: for j in 1..=3 {
        if i == j {
            continue 'outer;
            // これは外側のループを継続します
        }
        println!("({}, {})", i, j);
    }
}

この場合、ij と等しいとき、continue 'outer; 文が実行され、内側のループの残りの部分をスキップして外側のループの次のイテレーションを継続します。出力は以下のようになります:

(2, 1)
(3, 1)
(3, 2)
challenge icon

チャレンジ

初心者

ラベル付きループを使用して、和が10より大きく、積が12の倍数(積が12で割り切れる)となる最初の数値のペア (i, j) を見つけるRustのプログラムを作成してください。プログラムは、i を1から20まで、j を1から20まで繰り返す必要があります。

ペアが見つかったら、それを (i, j) という形式で出力し、外側のループを抜けてください。

チートシート

Rustのラベルは、ループが入れ子になっている場合に、特定のループをbreakまたはcontinueするのに役立ちます。ループの前に'label:を追加してラベルを付けます。

break 'label;を使用して、特定のラベル付きループを終了します:

'outer: for i in 1..=3 {
    'inner: for j in 1..=3 {
        if i * j > 5 {
            break 'outer;  // 外側のループを終了します
        }
        println!("({}, {})", i, j);
    }
}

continue 'label;を使用して、特定のラベル付きループの次のイテレーションに継続します:

'outer: for i in 1..=3 {
    'inner: for j in 1..=3 {
        if i == j {
            continue 'outer;  // 外側のループを継続します
        }
        println!("({}, {})", i, j);
    }
}

自分で試してみよう

fn main() {
    'outer: for i in 1..=20 {
        for j in 1..=20 {
            // Your logic here
            
            
            break 'outer;
        }
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Fundamentalsのすべてのレッスン