Keyword break[−][src]
Expand description
从循环中提前退出。
遇到 break
时,将立即终止关联循环体的执行。
let mut last = 0; for x in 1..100 { if x > 12 { break; } last = x; } assert_eq!(last, 12); println!("{}", last);Run
break 表达式通常与包围 break
的最里面的循环相关联,但是可以使用标签来指定哪个包围循环受到影响。
'outer: for i in 1..=5 { println!("outer iteration (i): {}", i); '_inner: for j in 1..=200 { println!(" inner iteration (j): {}", j); if j >= 3 { // 从内循环中断,让外循环继续。 break; } if i >= 2 { // 从外部循环中断,并直接到达 "Bye"。 break 'outer; } } } println!("Bye.");Run
与 loop
关联时,可以使用 break 表达式从该循环返回一个值。
这仅对 loop
有效,对其他任何类型的循环均无效。
如果未指定任何值,则 break;
返回 ()
。
循环中的每个 break
必须返回相同的类型。
let (mut a, mut b) = (1, 1); let result = loop { if b > 10 { break b; } let c = a + b; a = b; b = c; }; // 斐波纳契数列中第一个超过 10 的数字: assert_eq!(result, 13); println!("{}", result);Run
有关更多详细信息,请咨询 Reference on “break expression” 和 Reference on “break and loop values”。