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 use continue. Both continue and break 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.