ネストとラベル

ネストしたループを回している時に外側のループをbreakまたはcontinueしたい場合があります。こういった場合には'labelを用いてループにラベルを貼り、break/continueにそのラベルを渡します。

#![allow(unreachable_code, unused_labels)]

fn main() {
    'outer: loop {
        println!("Entered the outer loop");

        'inner: loop {
            println!("Entered the inner loop");

            // これは内側のループのみを中断します。
            //break;

            // こちらは外側を中断します。
            break 'outer;
        }

        println!("This point will never be reached");
    }

    println!("Exited the outer loop");
}