【アウトプット】Rustのラベルについて


RustにはGoto文がない

  • Goto文を使うのは良くない
  • でも、多重ループで、内側から外側に抜けるのにGoto文は便利だと思う
  • RustにはGoto文がないので、この様な場合に、breakやcontinueを使う

Rust入門書に載っていたサンプルコード

fn main() {
    'looptop: for i in 0..4 {
        for j in 0..4 {
            if i == 1 && j== 2 {
                break 'looptop; // ここは、セミコロン`;`
            }
            println!("{} {}", i, j);
        }
    } 
}

実行結果

0 0
0 1
0 2
0 3 // Rust入門書には、この行が書かれていなかった
1 0
1 1

ポイントの整理

  • Rustの繰り返し処理は3つ
    1. for文
    2. while文
    3. loop文
  • 繰り返し処理の行頭にラベル名を書き、breakでそこにジャンプさせる
  • ラベル名の先頭には単一引用符'が、末尾にはコロン:が必要
  • 通常、breakの末尾にセミコロン;は要らないが、ラベルを書く場合は必要

参考