break
and continue
๋ง์ฝ ๋ฃจํ๋ฅผ ์ค๊ฐ์ ๋ฉ์ถ๊ณ ์ญ๋ค๋ฉด break
๋ฅผ, ๋ฐ๋ก ๋ค์ ๋ฐ๋ณต์ผ๋ก ๋์ด๊ฐ๊ธฐ ์ํด์๋ continue
๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ ํค์๋ ๋ชจ๋ ์ค์ฒฉ ๋ฃจํ์์ label๋ก ํ๊ธฐํ ์ธ์๋ฅผ ์ทจํ์ฌ ์ ์ด ํ ์ ์์ต๋๋ค.
If you want to exit a loop early, use
break
, if you want to immediately start the next iteration usecontinue
. Bothcontinue
andbreak
can optionally take a label argument which is used to break out of nested loops:
fn main() { let v = vec![10, 20, 30]; let mut iter = v.into_iter(); 'outer: while let Some(x) = iter.next() { println!("x: {x}"); let mut i = 0; while i < x { println!("x: {x}, i: {i}"); i += 1; if i == 3 { break 'outer; } } } }
์ ์์ ๋ ์ค์ ๋ฃจํ๋ฅผ 3ํ ๋ฐ๋ณตํ ํ ๋ฐ๊นฅ๋ฃจํ(โouterโ ๋ ์ด๋ธ)์ ์ ์งํฉ๋๋ค.(์ข ๋ฃ)
In this case we break the outer loop after 3 iterations of the inner loop.