Labels

کلیدواژه‌های continue و break هر دو می‌توانند به صورت اختیاری یک آرگومان برچسب (label) بگیرند که میتوان برای خروج از حلقه‌های تو در تو استفاده می‌کرد:

fn main() {
    let s = [[5, 6, 7], [8, 9, 10], [21, 15, 32]];
    let mut elements_searched = 0;
    let target_value = 10;
    'outer: for i in 0..=2 {
        for j in 0..=2 {
            elements_searched += 1;
            if s[i][j] == target_value {
                break 'outer;
            }
        }
    }
    print!("elements searched: {elements_searched}");
}
  • توجه داشته باشید که loop تنها ساختار حلقه‌ای است که یک مقدار non-trivial را برمی‌گرداند. این به دلیل این است که تضمین می‌شود حداقل یک بار وارد آن شود (برخلاف حلقه‌های while و for).