break์™€ continue

Rust์—์„œ ๋ฐ˜๋ณต๋ฌธ์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํ‚ค์›Œ๋“œ ์ค‘ ๋Œ€ํ‘œ์ ์ธ ๊ฒƒ์ด break์™€ continue์ด๋‹ค. ์ด ๋‘ ํ‚ค์›Œ๋“œ๋Š” ๋ฐ˜๋ณต๋ฌธ์˜ ํ๋ฆ„์„ ์ง์ ‘์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ ์ ˆํžˆ ํ™œ์šฉํ•˜๋ฉด ๋กœ์ง์„ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์‚ฌ์šฉ ๋นˆ๋„๋‚˜ ์œ„์น˜๋ฅผ ์ž˜๋ชป ์„ค์ •ํ•˜๋ฉด ์˜คํžˆ๋ ค ํ๋ฆ„ ํŒŒ์•…์ด ์–ด๋ ค์›Œ์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ฃผ์˜ ๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ์ด ์ ˆ์—์„œ๋Š” break์™€ continue๊ฐ€ ๊ฐ๊ฐ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ํ™œ์šฉ๋˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  Rust์—์„œ ์ œ๊ณตํ•˜๋Š” ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ(๋ ˆ์ด๋ธ”(Label) ์‚ฌ์šฉ ๋“ฑ)์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์„ค๋ช…ํ•œ๋‹ค.

๋ฐ˜๋ณต๋ฌธ์€ ํฌ๊ฒŒ loop, while, for๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ์ค‘ break์™€ continue๋Š” ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋ฐ˜๋ณต๋ฌธ์—์„œ ํ™œ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ•„์š”์— ๋”ฐ๋ผ ๋‚ด๋ถ€์˜ ๋ธ”๋ก ํ๋ฆ„์„ ์ฆ‰์‹œ ๋ฐ”๊พธ๋Š” ์šฉ๋„๋กœ ์“ฐ์ธ๋‹ค. break๋Š” ๋ฐ˜๋ณต๋ฌธ์„ ์™„์ „ํžˆ ๋น ์ ธ๋‚˜์˜ค๋Š” ๊ธฐ๋Šฅ์„, continue๋Š” ํ•ด๋‹น ๋ฐ˜๋ณต์˜ ๋‚จ์€ ๋ถ€๋ถ„์„ ๊ฑด๋„ˆ๋›ฐ๊ณ  ๋‹ค์Œ ๋ฐ˜๋ณต์œผ๋กœ ๋„˜์–ด๊ฐ€๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์ œ์–ด ํ๋ฆ„ ๋ณ€๊ฒฝ์€ ์„ฑ๋Šฅ์ด๋‚˜ ์ฝ”๋“œ ๋‹จ์ˆœํ™” ์ธก๋ฉด์—์„œ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋„ˆ๋ฌด ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋ณต์žกํ•˜๊ฒŒ ์–ฝ์–ด์„œ ์“ฐ๋ฉด ์ฝ”๋“œ๋ฅผ ์ฝ๋Š” ์ด์—๊ฒŒ ํ˜ผ๋™์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‚ฌ์šฉ ์‹œ ๋ฐ˜๋“œ์‹œ ์˜๋„๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ๋“œ๋Ÿฌ๋‚ด์•ผ ํ•œ๋‹ค.

break ํ‚ค์›Œ๋“œ

Rust์—์„œ break๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ๋ฐ˜๋ณต๋ฌธ์„ ์ฆ‰์‹œ ์ข…๋ฃŒํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ while ๋˜๋Š” for ๋ฃจํ”„ ๋‚ด๋ถ€์—์„œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด ๋ฐ˜๋ณต์„ ๋๋‚ด๊ธฐ ์œ„ํ•ด break๋ฅผ ์ž์ฃผ ์“ด๋‹ค. ๋‹ค๋ฅธ ์–ธ์–ด์™€ ๋‹ฌ๋ฆฌ Rust์˜ loop๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฌดํ•œ ๋ฃจํ”„๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ด๋Ÿฐ ๋ฌดํ•œ ๋ฃจํ”„๋ฅผ ์ธ์œ„์ ์œผ๋กœ ํƒˆ์ถœํ•˜๋Š” ๋ชฉ์ ์œผ๋กœ๋„ break๋ฅผ ํ™œ์šฉํ•œ๋‹ค.

์•„๋ž˜๋Š” break๋ฅผ ํ†ตํ•ด ๋ฐ˜๋ณต๋ฌธ์„ ์ข…๋ฃŒํ•˜๋Š” ์ „ํ˜•์ ์ธ ์˜ˆ์‹œ์ด๋‹ค.

fn main() {
    let mut count = 0;
    loop {
        count += 1;
        if count > 5 {
            break;
        }
        println!("count: {}", count);
    }
    println!("๋ฐ˜๋ณต๋ฌธ ์ข…๋ฃŒ ํ›„ count: {}", count);
}

์ด ์˜ˆ์‹œ์—์„œ loop๋Š” ๋ฌดํ•œ ๋ฐ˜๋ณต์ด์ง€๋งŒ, count๊ฐ€ 5๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด break๋ฅผ ํ†ตํ•ด ์ฆ‰์‹œ ๋น ์ ธ๋‚˜์˜จ๋‹ค. ๋”ฐ๋ผ์„œ 6๋ฒˆ ์ด์ƒ ์ฆ๊ฐ€ํ•˜๋Š” ์ผ ์—†์ด ๋ฐ˜๋ณต์ด ๋๋‚˜๊ณ , ์ตœ์ข…์ ์œผ๋กœ count๋Š” 6์ด ๋œ๋‹ค.

Rust๋Š” ๋‹จ์ˆœ ์ข…๋ฃŒ ์™ธ์—๋„ break ํ‚ค์›Œ๋“œ๋ฅผ ํ™œ์šฉํ•ด loop์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค. loop ์ž์ฒด๊ฐ€ ํ‘œํ˜„์‹(Expression)์œผ๋กœ ๊ฐ„์ฃผ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋‹ค์Œ ์˜ˆ์‹œ๋ฅผ ๋ณด์ž.

์ด ์ฝ”๋“œ์—์„œ loop ๋‚ด๋ถ€์—์„œ break 10์„ ์‹คํ–‰ํ•˜๋ฉด loop ํ‘œํ˜„์‹์˜ ๊ฒฐ๊ณผ๋กœ 10์ด ๋ฐ˜ํ™˜๋œ๋‹ค. ๋”ฐ๋ผ์„œ result ๋ณ€์ˆ˜์—๋Š” 10์ด ํ• ๋‹น๋œ๋‹ค. while๊ณผ for ๋ฃจํ”„์—์„œ๋Š” ์ด๋Ÿฐ ์‹์˜ ๋ฐ˜ํ™˜๊ฐ’์„ ์ง€์ •ํ•  ์ˆ˜ ์—†๊ณ , ์˜ค์ง loop์—์„œ๋งŒ ๋ฐ˜ํ™˜๊ฐ’์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ค‘์ฒฉ๋œ ๋ฐ˜๋ณต๋ฌธ์ด ์žˆ์„ ๋•Œ ํŠน์ • ๋ฐ˜๋ณต๋ฌธ ํ•˜๋‚˜๋งŒ ๋น ์ ธ๋‚˜๊ฐ€๊ณ  ์‹ถ๋‹ค๋ฉด, Rust์˜ ๋ ˆ์ด๋ธ”(Label) ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ ˆ์ด๋ธ”์€ ๋ฐ˜๋ณต๋ฌธ ์•ž์— 'label_name: ํ˜•ํƒœ๋กœ ์ž‘์„ฑํ•˜๊ณ , break๋‚˜ continue ๋’ค์— 'label_name์„ ๋ถ™์—ฌ์„œ ์–ด๋–ค ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ€์ƒ์œผ๋กœ ํ•  ๊ฒƒ์ธ์ง€ ์ง€์ •ํ•ด ์ค€๋‹ค. ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ด ์˜ˆ์‹œ์—์„œ x + y๊ฐ€ 5๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด ์ฆ‰์‹œ 'outer ๋ ˆ์ด๋ธ”์ด ๋ถ™์€ ๋ฐ”๊นฅ for ๋ฃจํ”„๋ฅผ ๋น ์ ธ๋‚˜๊ฐ„๋‹ค. ๋ ˆ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด break๋Š” ์ž์‹ ์ด ์†ํ•œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ฐ˜๋ณต๋ฌธ๋งŒ ํƒˆ์ถœํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ค‘์ฒฉ ๊ตฌ์กฐ๋ฅผ ๋ช…ํ™•ํžˆ ์ปจํŠธ๋กคํ•˜๋ ค๋ฉด ๋ ˆ์ด๋ธ”์„ ํ™œ์šฉํ•ด์•ผ ํ•œ๋‹ค.

continue ํ‚ค์›Œ๋“œ

Rust์—์„œ continue ํ‚ค์›Œ๋“œ๋Š” ํ˜„์žฌ ๋ฐ˜๋ณต์„ ์ค‘๋‹จํ•˜๊ณ  ๋‹ค์Œ ๋ฐ˜๋ณต์œผ๋กœ ์ฆ‰์‹œ ๋„˜์–ด๊ฐ€๋„๋ก ํ•œ๋‹ค. ๋ฐ˜๋ณต๋ฌธ ๋‚ด์—์„œ ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์— ์ž‘์—…์„ ๊ฑด๋„ˆ๋›ฐ๊ณ  ์‹ถ๊ฑฐ๋‚˜, ๊ตณ์ด ๋‚จ์€ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†์„ ๋•Œ continue๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์กฐ๊ฑด์„ ๋ถ„๊ธฐํ•˜๊ณ  ๋น ๋ฅธ ํŒ๋‹จ์œผ๋กœ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ฝ”๋“œ ํ๋ฆ„์ด ๊ฐ„๋‹จํ•ด์งˆ ์ˆ˜ ์žˆ์œผ๋‚˜, ๊ณผ๋„ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ˜๋ณต ๋ธ”๋ก์˜ ๋…ผ๋ฆฌ ๊ตฌ์กฐ๊ฐ€ ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ๋‹ค.

๋‹ค์Œ ์˜ˆ์‹œ๋Š” count๊ฐ€ ์ง์ˆ˜์ผ ๋•Œ๋Š” ์ถœ๋ ฅํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ๋‹ค์Œ ๋ฐ˜๋ณต์œผ๋กœ ๋„˜์–ด๊ฐ€๋Š” ์ƒํ™ฉ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

์ด ์ฝ”๋“œ์—์„œ count๊ฐ€ ์ง์ˆ˜์ด๋ฉด if ๋ธ”๋ก์„ ํ†ต๊ณผํ•˜์—ฌ continue๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ๋‚จ์€ println! ๋ถ€๋ถ„์€ ๊ฑด๋„ˆ๋›ด๋‹ค. ๊ฒฐ๊ตญ ์ถœ๋ ฅ๋˜๋Š” ๊ฐ’์€ ๋ชจ๋‘ ํ™€์ˆ˜์ธ 1, 3, 5, 7, 9๊ฐ€ ๋œ๋‹ค.

continue ์—ญ์‹œ break์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ ˆ์ด๋ธ”์„ ํ™œ์šฉํ•˜์—ฌ ์ค‘์ฒฉ๋œ ๋ฐ˜๋ณต๋ฌธ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹จ์ˆœํžˆ ํ˜„์žฌ ๋ฃจํ”„๊ฐ€ ์•„๋‹Œ ์ƒ์œ„ ๋ ˆ๋ฒจ์˜ ๋ฐ˜๋ณต๋ฌธ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ€๊ณ  ์‹ถ๋‹ค๋ฉด, continue ๋’ค์— ๋ ˆ์ด๋ธ”์„ ๋ถ™์ผ ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋งŒ ์ผ๋ฐ˜์ ์ธ ์ƒํ™ฉ์—์„œ๋Š” break๋ฅผ ๋ ˆ์ด๋ธ”๊ณผ ํ•จ๊ป˜ ์“ฐ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข€ ๋” ์žฆ๋‹ค.

๋ ˆ์ด๋ธ”์ด ์ ์šฉ๋œ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ด ์˜ˆ์‹œ์—์„œ x == y์ธ ์ƒํ™ฉ์ด ์˜ค๋ฉด 'outer ๋ ˆ์ด๋ธ”์ด ๋ถ™์€ ๋ฐ”๊นฅ for ๋ฃจํ”„์˜ ๋‹ค์Œ ๋ฐ˜๋ณต์œผ๋กœ ๋„˜์–ด๊ฐ„๋‹ค. ๋”ฐ๋ผ์„œ ๋‚ดํฌ๋œ for ๋ฃจํ”„ ๋‚ด๋ถ€๋Š” ๋” ์ด์ƒ ์ง„ํ–‰๋˜์ง€ ์•Š๊ณ , x์˜ ๋‹ค์Œ ๊ฐ’์œผ๋กœ ์™ธ๋ถ€ ๋ฃจํ”„๋ฅผ ์ง„ํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.

break์™€ continue๋Š” ๋ฐ˜๋ณต๋ฌธ์„ ๊ฐ•๋ ฅํ•˜๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์‚ฌ์šฉ ์‹œ ์˜๋„๊ฐ€ ์„ ๋ช…ํ•˜๊ฒŒ ๋“œ๋Ÿฌ๋‚˜๋„๋ก ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค. ๋ฌด๋ถ„๋ณ„ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ์ถ”์ ํ•˜๊ธฐ ์–ด๋ ค์›Œ์ง€๊ณ , ๊ฐ„๋‹จํ•œ ๋กœ์ง์ด๋ผ๋„ ๋ณต์žกํ•ด ๋ณด์ผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ ˆ์ด๋ธ”์€ ์ค‘์ฒฉ๋œ ๊ตฌ์กฐ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ๋น ์ ธ๋‚˜๊ฐ€๊ฑฐ๋‚˜ ๊ฑด๋„ˆ๋›ธ ๋•Œ๋งŒ ์ œํ•œ์ ์œผ๋กœ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. Rust์˜ ์ œ์–ด ํ๋ฆ„์€ ๋ช…์‹œ์  ์„ค๊ณ„๋ฅผ ์ค‘์‹œํ•˜๋ฏ€๋กœ, break์™€ continue์˜ ๋ชฉ์ ๊ณผ ๋ฒ”์œ„๊ฐ€ ๋ช…ํ™•ํ•  ๋•Œ๋งŒ ์‚ฌ์šฉํ•˜๊ธธ ๊ถŒ์žฅํ•œ๋‹ค.

๊ฒฐ๊ตญ break๋Š” ๋ฐ˜๋ณต๋ฌธ์˜ ์ฆ‰์‹œ ์ข…๋ฃŒ, continue๋Š” ํ˜„์žฌ ๋ฐ˜๋ณต์˜ ์ผ๋ถ€ ๋กœ์ง ์Šคํ‚ต ํ›„ ๋‹ค์Œ ๋ฐ˜๋ณต ์ง„ํ–‰์ด๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ์ œ์–ด๋ฅผ ๋งก๋Š”๋‹ค. ํ•„์š”์— ๋”ฐ๋ผ ์ ์ ˆํžˆ ํ™œ์šฉํ•˜๋ฉด ๋ฐ˜๋ณต๋ฌธ ๊ตฌ์กฐ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ณ  ์„ฑ๋Šฅ์ด๋‚˜ ๊ฐ€๋…์„ฑ ๋ฉด์—์„œ ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋งŒ ๋ณต์žกํ•œ ์กฐ๊ฑด๋ถ€ ๋กœ์ง์ด ์–ฝํžŒ ๊ณณ์—์„œ๋Š” ์ฝ”๋“œ๊ฐ€ ๋‚œํ•ดํ•ด์งˆ ์œ„ํ—˜์ด ์žˆ์œผ๋ฏ€๋กœ, ์ƒํ™ฉ์— ๋งž์ถฐ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•˜๋Š” ์Šต๊ด€์„ ๊ฐ–์ถ”๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

Last updated