[ Swift ๊ธฐ์ด ๋ฌธ๋ฒ ] ์ ์ด ์ ๋ฌ๋ฌธ - break, continue, return, fallthrough / throw
์ ์ด ์ ๋ฌ๋ฌธ์ ๋ฐ๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์์ ์ฌ์ฉ๋๊ณ ์ฝ๋์ ์คํ ํ๋ฆ์ ๋ฐ๊พธ๋๋ฐ ์ฌ์ฉํ๋ค.
์ด๋ค ์กฐ๊ฑด์ด ๋๋ฉด ๋ฐ๋ณต๋ฌธ์ ๋๋ด๊ฑฐ๋ ํ์ฌ ํ์ฐจ๋ฅผ ๋๋ด๊ณ ๋ฐ๋ก ๋ค์ ํ์ฐจ๋ก ๋์ด ๊ฐ๋ ๊ฒ ๋ฑ์ ๊ตฌํํ ์ ์๋ค.
ํ์ฌ ์คํ์ค์ธ ์ค์ฝํ๋ฅผ ๋๋ด๊ณ ๋ค์์ ์คํํ ์ฝ๋๋ฅผ ๋ฐ๋ก ์คํํ๋ ๊ฒ.
Swift์๋ 5๊ฐ์ง ์ ์ด ์ ๋ฌ๋ฌธ์ด ์๋ค.
break, continue, fallthrough, throw, return,
continue๋ ์ ์ด๋ฅผ ๋ค์ ํ์ฐจ๋ก ์ ๋ฌ
index๊ฐ 5 ... 10๊น์ง๋ "end"๊ฐ ์ถ๋ ฅ์ด ๋๊ณ ๋ค์ ํ์ฐจ ๋ฐ๋ณต
index๊ฐ 11์ด ๋๋ฉด ๋ฐ๋ก break๊ฐ ์คํ ๋๊ณ ์คํ ์ค์ธ ๋ฌธ์ฅ์ ๋๋ธ๋ค.
์ฌ๊ธฐ์๋ for๋ฌธ์ด ๋๋๊ณ for๋ฌธ ๋ค์ ๋ฌธ์ฅ์ผ๋ก ์ ๋ฌ์ด ๋๋ค.
: ์กฐ๊ฑด์์ ๊ฒฐ๊ณผ์ ์๊ด์์ด ํ์ฌ ์คํ ์ค์ธ ๋ฌธ์ฅ์ ์ฆ์ ์ค์งํ๊ณ ๋ค์ ๋ฌธ์ฅ์ผ๋ก ์ ์ด๋ฅผ ์ ๋ฌ/์คํํ๋ค.
switch๋ฌธ์์๋ ๋ฌธ์ฅ์ ๋น์๋๊ฑฐ๋ ๋ฌธ์ฅ์ ์คํ์ํค๊ณ ์ถ์ง ์์ ๋ ์ฌ์ฉ
๋ฐ๋ณต๋ฌธ์์๋ ๊ฐ์ฅ ์ธ์ ํ ๋ฐ๋ณต๋ฌธ์ ์์ ์ค์ง ์ํฌ ๋ ์ฌ์ฉ
1. case์์ 1์ด ํ์์ ํด๋น ๋๋ฏ๋ก "begin block" ์คํ ํ if๋ฌธ์์ break ํธ์ถ
break๋ ํ์ฌ ์คํ ์ค์ธ ๋ฌธ์ฅ์ ์ค์งํ๊ธฐ ๋๋ฌธ์ case ๋ฌธ์ฅ๋, switch ๋ฌธ์ฅ๋ break์์ ๋ฐ๋ก ๋๋๋ค.
๊ทธ๋์ "end block"์ ์ถ๋ ฅ๋์ง ์๊ณ ๋ค์ ๋ฌธ์ฅ์ธ "done"์ด ์ถ๋ ฅ ๋๋ค.
-> ๋ฐ๋ณต ์คํ ๋ธ๋ก์ ์ฌ์ฉ๋์ด ์กฐ๊ฑด์ด false๋ฅผ ๋ฐํํ๊ธฐ ์ ์ ๋ฐ๋ณต๋ฌธ์ ๋ฏธ๋ฆฌ ์ข ๋ฃ ์ํด.
2. derault ๋ถ๋ถ์์ ์๋ฌด๊ฒ๋ ํ์ง ์์ ์ฝ๋๋ธ๋ก์ ๋น์๋๋ค๋ฉด ์ต์ํ ํ๋ฌธ์ฅ์ ์ ๋ ฅํด์ผ ํ๊ธฐ ๋๋ฌธ์ break ์ฌ์ฉ
2๊ฐ ๋๋ฉด break๊ฐ ์คํ๋๊ธฐ ๋๋ฌธ์ for๋ฌธ ์์ฒด๊ฐ ๋๋๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์ 2๊น์ง๋ง ์ถ๋ ฅ ๋๋ค.
break๋ ๋ฌธ์ฅ์ด ์ค์ฒฉ๋์ด ์์ผ๋ฉด ๊ฐ์ฅ ์ธ์ ํ ๋ฌธ์ฅ๋ง ์ค์งํ๊ณ ๋๋จธ์ง ๋ฌธ์ฅ์๋ ์ํฅ์ ์ฃผ์ง ์๋๋ค.
๊ทธ๋์ inner loop๋ ์ค์ง ๋์์ง๋ง outer loop๋ ์ํฅ์ ๋ฐ์ง ์์ ๊ฒ.
: ํ์ฌ ์คํ ์ค์ธ ๋ฐ๋ณต ํ์ฐจ๋ฅผ ๋ฐ๋ก ๋๋ด๊ณ ๋ค์ ๋ฐ๋ณต ํ์ฐจ๋ก ๋์ด ๊ฐ๋ค.
๊ฐ์ฅ ์ธ์ ํ ๋ฌธ์ฅ์๋ง ์ํฅ์ ์ค๋ค.
๐ break์ continue์ ์ฐจ์ด์
- break ๊ตฌ๋ฌธ : ๋ฐ๋ณต๋ฌธ์ ์์ ํ ์ข ๋ฃ!!!
- continue ๊ตฌ๋ฌธ : ๋ฐ๋ณต๋ฌธ์ ์กฐ๊ฑด์ ๋ค์ ํ๊ฐํ๊ณ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ๋ค์ ๋ฐ๋ณต ์ฃผ๊ธฐ ์คํ
- ์ง์ 2์ผ ๋ ํ์ฌ ์คํ ์ค์ธ ๋ฐ๋ณต ํ์ฐจ๋ฅผ ์ฆ์ ๋๋ด๊ณ
print(index)๊น์ง ๊ฐ์ง ์๋๋ค. (2๋ฒ์งธ ํ์ฐจ์ ํด๋น๋๋ ๋ค์ ๋ฌธ์ฅ์ธ index ์ถ๋ ฅ โ)
๋ค์ ํ์ฐจ(ํ์ 3)๋ก ๋์ด๊ฐ๋ค.
- break์๋ ๋ค๋ฅด๊ฒ ๋ฐ๋ก for๋ฌธ ์์ฒด๋ฅผ ๋๋ด๋ ๊ฒ์ ์๋๋ค.
break์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฌธ์ฅ์ด ์ค์ฒฉ๋์ด ์์ผ๋ฉด ๊ฐ์ฅ ์ธ์ ํ ๋ฌธ์ฅ๋ง ์ค์งํ๊ณ
์์ ์๋ for๋ฌธ์ ์ค์งํ์ง๋ง ๋ฐ๊นฅ์ ์๋ for๋ฌธ์๋ ์ํฅ์ ์ฃผ์ง ์๋๋ค.
๐ ํจ์์ ํจ๊ป ๊ฐ๋ ๋ณด๊ธฐ
๐ ์กฐ๊ฑด๋ฌธ switch์ ํจ๊ป ๊ฐ๋ ๋ณด๊ธฐ
through ๋ค์์ ์๋ฌ์ ํ์ ์ ๋ฆฌํดํ๊ณ ํจ์ ์คํ์ ์ค์งํ๊ณ ๋๋ธ๋ค.
๐ Reference
- ์คํ๋ฅดํ์ฝ๋ฉ ๋ด์ผ๋ฐฐ์์บ ํ Swift ํ์ต์๋ฃ