๐ 1 . if ๊ตฌ๋ฌธ
- condition == ์กฐ๊ฑด == boolean
- ์กฐ๊ฑด์์ ๊ฒฐ๊ณผ๊ฐ true์ผ ๋๋ง ์ฝ๋ ๋ธ๋ก ๋ด๋ถ์ ๊ตฌ๋ฌธ ์คํ
- false์ด๋ฉด ์ฝ๋๋ธ๋ก์ ๋น ์ ธ๋๊ฐ if๋ธ๋ก ๋ค์์ ์์นํ ์ฝ๋ ์ํ
โ
if ~ else
- if ์กฐ๊ฑด์ { ์กฐ๊ฑด์ด true ์ผ ๋ ์คํํ ๊ตฌ๋ฌธ }
- else { ์กฐ๊ฑด์ด false ์ผ ๋ ์คํํ ๊ตฌ๋ฌธ }
โ
if ~ else if
๋น๊ตํ ์กฐ๊ฑด์ด ์ฌ๋ฌ ๊ฐ ์์ ๊ฒฝ์ฐ
if๋ฌธ์ ์์์ ์๋๋ก ์กฐ๊ฑด์ ํ๊ฐํ๊ธฐ ๋๋ฌธ์ ์์๊ฐ ์ค์ํ๋ค.
๊ทธ๋์ ํญ์ ๊น๋ค๋ก์ด ์กฐ๊ฑด๋ฌธ์ด ๋จผ์ ์ค๊ณ ๋์ํ ์กฐ๊ฑด๋ฌธ์ด ๋์ค์ ์์ผ ํ๋ค.
โ
#available ๊ตฌ๋ฌธ
OS ๋ฒ์ ์ ๋ฐ๋ผ ๊ธฐ๋ฅ์ด ๋ค๋ฅด๊ฒ ์ ๊ณต ๋์ด OS ๋ฒ์ ์ ๋ฐ๋ผ ๊ตฌ๋ฌธ์ ๋๋ ์์ฑํ ํ์๊ฐ ์๋ค.
ํน์ API๋ฅผ ์ฌ์ฉํ ๋๋ ์ฌ์ฉ ๊ฐ๋ฅํ iOS ๋ฒ์ ๊ณผ ๊ธฐ๊ธฐ๋ฅผ ์ฒดํฌํด์ผ ํ๋๋ฐ ์ฝ๋์์์ ์ฒ๋ฆฌํ ์ ์๋ ๊ตฌ๋ฌธ
๐ 2. guard ๊ตฌ๋ฌธ
- if ๊ตฌ๋ฌธ๊ณผ์ ์ฐจ์ด์
- else ๋ธ๋ก์ด ํ์
- ํํ์์ ๊ฒฐ๊ณผ๊ฐ true ์ผ ๋ ์คํ๋๋ ๋ธ๋ก์ด ์์
- if ๊ตฌ๋ฌธ์ ๋จ์
์กฐ๊ฑด์ด ์ฌ๋ฌ ๊ฐ์ผ ๋ if๋ฌธ ์์ if๋ฌธ์ด ๊ณ์ ์๊ฒจ ๊ฐ๋
์ฑ์ด ์ข์ง ์์ -> guard ๊ตฌ๋ฌธ์ ํ์์ฑ!!
- if๊ตฌ๋ฌธ์ ์ ์ฌํ์ง๋ง else์ธ ์กฐ๊ฑด์ ๋จผ์ ํ์ธํ๋ ค๋ ์ฉ๋๊ฐ guard ๊ตฌ๋ฌธ์ด๋ค!!!
-> early exit ํ๊ธฐ ์ํ ๋ชฉ์
-> ์กฐ๊ฑด์ ๋ง์กฑํ๋ค๋ฉด ๋ค์ ์ค์ ์ฝ๋๋ฅผ ์คํํ๋ค.
- guard ๋ฌธ์ ์กฐ๊ฑด์ด true๋ฉด guard ๊ตฌ๋ฌธ์ ๋๋ด๊ณ ๋ค์ ์ด์ด์ง๋ ๋ฌธ์ฅ์ ์คํํ๋ค.
- false๋ฉด else๋ฌธ์ ์คํํ๋ค. if๋ฌธ๊ณผ๋ ๋ฌ๋ฆฌ else ๋ถ๋ถ์ ์๋ตํ ์ ์๋ค.
- guard์ else ๋ธ๋ก์ ๋ฐ๋์ guard๊ฐ ํธ์ถ๋ ์ค์ฝํ๋ฅผ ์ข
๋ฃ ํด์ผํ๋ค.
-> ํจ์์์๋ return/ throw
๋ฐ๋ณต๋ฌธ์์๋ break/ continue์ด์ฉ.
๋ฐ๋ณต๋ฌธ ์์ guard ๊ตฌ๋ฌธ์ด ์ค์ฒฉ๋์ด ์๊ณ break๋ฅผ ๋ง๋๋ค๋ฉด ๋ฐ๋ณต๋ฌธ ์ข
๋ฃ
- ์กฐ๊ฑด์ด ๋ง์์ ธ๋ ์ค์ฒฉ์ด ๋ฐ์ํ์ง ์์ ๊ฐ๋
์ฑ์ด ๋๋ค.
๐ 3. switch ๊ตฌ๋ฌธ
: ๋์ด๋ ๊ฐ์ ์์๋๋ก ๋น๊ตํ ๋ค์์ ๊ฐ์ด ์ผ์นํ๋ ์ฒซ๋ฒ์งธ ํจํด์ ์ฝ๋๋ธ๋ก์ ์คํํ๋ ๋ฌธ์ฅ
- ๋น๊ตํ ๋์๊ณผ case ๋ค์ ๊ฐ์ด ๊ฐ๋ค๋ฉด ํด๋น case์ ์ฝ๋๋ธ๋ญ์ด ์คํ๋๋ค.
์คํ ํ ๋๋จธ์ง case์ ๋ํ ๋น๊ต ์์ด ๋ฐ๋ก switch ๊ตฌ๋ฌธ ์ข
๋ฃ
- ์ผ์นํ๋ case๊ฐ ์ฌ๋ฌ ๊ฐ ์๋๋ผ๋ ๋งจ ์ฒ์์ ์ผ์นํ case ๊ตฌ๋ฌธ ํ๋๋ง ์คํํ๊ณ ๋๋จธ์ง๋ค์ ๋น๊ต x
- ๋๋ฒ์งธ ์ผ์ด์ค์ฒ๋ผ ๋งค์นญ์ํฌ ํจํด์ ๋๊ฐ ์ด์ ๋์ด์ํฌ ์๋ ์๋ค. (or)
- default์ ํญ์ ํ์ค ์ด์์ ์ฝ๋๊ฐ ํ์ํ๋ฐ, ์๋ค๋ฉด break๋ฅผ ์ฌ์ฉํ๋ค.
- ์ฒ์๋ถํฐ ๊ฐ์ ํ๋์ฉ ๋งค์นญํ๊ณ ๊ฐ์ด ๊ฐ์ case ๋ธ๋ก์ ์คํํ๊ณ ๋ค์ case๋ ํ์ธํ์ง ์๊ณ ๋ฐ๋ก ๋๋๋ค.
โ
fallthrough
- fallthrough๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ๋ก ๋ค์ case์ ๋ฌธ์ฅ์ด ์คํ๋๋ค.
- fallthrough์ ์ํด ์คํ ํ๋ฆ์ ์ ๋ฌ ๋ฐ๋ case ๋ธ๋ก์ ์ผ์น ์ฌ๋ถ์ ์๊ด ์์ด ์ฝ๋ ์คํ ํ switch ๊ตฌ๋ฌธ ์ข
๋ฃ.
- ๊ตฌํ์ ๋ฐ๋ผ์ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ๋์ ํ์ํ ๋๋ง ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
โ
switch ~ where
๐ Reference
- ์คํ๋ฅดํ์ฝ๋ฉ ๋ด์ผ๋ฐฐ์์บ ํ Swift ํ์ต์๋ฃ