ラベル
continue と break はどちらも、ネストしたループを抜けるために使う 省略可能なラベル引数を受け取れます:
// 著作権 2024 Google LLC // SPDX-License-Identifier: Apache-2.0 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; } } } dbg!(elements_searched); }
- ラベル付き break も任意のブロックで機能します。たとえば次のとおりです。
#![allow(unused)] fn main() { // 著作権 2024 Google LLC // SPDX-License-Identifier: Apache-2.0 'label: { break 'label; println!("This line gets skipped"); } }