MATHGRAM

主に数学とプログラミング、時々趣味について。

[Rust] 外側のループを抜けたい

Rustの勉強しててこれは便利だなぁって思ったものは小さい記事でもまとめておきます. 記事にすることで記憶に残りますしね.

ループに名前をつけられる

この機能をループラベルと言います.
ループ処理が入れ子になっていて, ここで外側のループを抜けたいんだけど!! って時に使います.

注意点なのですが, ラベルは左側だけシングルコーテーションです. str型のように囲いたくなりますが我慢しましょう.

fn main() {
    'outer: for x in 0..6 {
        'inner: for y in 0..6 {
            // 偶数ならば次の x に飛ぶ.
            // 奇数だった場合は 'inner' が終わるまで, x は固定される.
            if x % 2 == 0 { continue 'outer; }

            // 偶数は飛ばしつつ y のループを継続させる.
            if y % 2 == 0 { continue 'inner; }
            println!("x: {}, y: {}", x, y);
        }
    }
}

出力

x: 1, y: 1
x: 1, y: 3
x: 1, y: 5
x: 3, y: 1
x: 3, y: 3
x: 3, y: 5
x: 5, y: 1
x: 5, y: 3
x: 5, y: 5

以上です.