<TIL>
3์ฃผ์ฐจ ๋ฌธ๋ฒ ์ข
ํฉ๋ฐ ์ฌํ๊ฐ์ ๊ฐ์ธ ๊ณผ์ ์ ์ถ ํ, ํด์ค ๊ฐ์๊ฐ ์ฌ๋ผ์๋ค!
[๋ด๋ฐฐ์บ ] ๋ฐ์ฐ์ฐฌ ํํฐ๋๊ป์ ํด์ค ๊ฐ์๋ฅผ ์ ๊ณตํด์ฃผ์
จ๋ค.
๊ฐ์๋ฅผ ๋ณด๋ฉด์, ๋ด ํ์ด์ ์ด๋ค ์ ์ด ๋ค๋ฅธ์ง๋ฅผ ๋น๊ตํ๋ฉด์
๋ ๋ค๋ฅธ ํ์ด ๋ฐฉ๋ฒ์ ๋ํด์ ๊ณต๋ถํ๋ ์๊ฐ์ ๊ฐ์ก๋ค.
random(in:) ํจ์ ๋์ shuffled()
for๋ฌธ ๋์ map
(์ต์
๋ ์ ๊ฑฐ๋ฅผ ์ํด compactMap(_:) ์ฌ์ฉ)
๋ฐฐ์ด์ ์ ๊ณต๋๋ enumerated() ํ์ฉ
class ํ์ฉ
while ๋ฌธ์์ continue, break ์ฌ์ฉ
switch๋ฌธ ํ์ฉ
์์ ์ ์ ๋ถ๋ถ๋ค์์ ์ฐจ์ด์ ์ด ์์๋ค.
shuffled๋ compactMap์ ๊ฒฝ์ฐ๋ ์ฒ์ ๋ณด๋ ํจ์๋ผ์ ๊ณต๋ถ๋ฅผ ํด์ผํ ๊ฒ ๊ฐ๋ค.
(์ฐพ์๋ณด๊ณ ๋ฐ์ ์ ๋ฆฌํ ์์ )
๊ทธ ๋ฐ์ ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ค๋ ์๋์ ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค!
shuffled() ํจ์
shuffled()๋ ์์๋ฅผ ์์ ์์๋ค์ ๋ฐํํ๋ ํจ์์ด๋ค.
์์ ์์๋ฅผ ๋ณด๋ฉด, ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ฝ๊ฒ ์ ์ ์๋ค.
compactMap(_:)
compactMap์
sequence์ ๊ฐ ์์์ ๋ํ ๋ณํ ์์
๊ฒฐ๊ณผ ์ค nil์ด ์๋ ๊ฒฐ๊ณผ๋ง ํฌํจํ์ฌ Array๋ก ๋ฐํํด์ฃผ๋ ํจ์์ด๋ค.
์ ์์๋ฅผ ๋ณด๋ฉด, nil๊ฐ์ ์ ์ธํ ๊ฐ๋ง ๋ฐํ๋ ๊ฒ์ ์ ์ ์๋ค.
๊ฒฐ๊ณผ๋ง ๋ค๋ฅผ ๋ฟ ์ฌ์ฉ ๋ฐฉ๋ฒ์ map ํจ์์ ๋์ผํ๋ค.
enumerated()
enumerated()๋ ์ธ๋ฑ์ค๋ฅผ ํจ๊ป ๋ฐํํด์ฃผ๋ ํจ์๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
์ด ํจ์๋ "for-in" ๋ฃจํ์ ํจ๊ป ์ฌ์ฉํ์ฌ ์์์ ์ธ๋ฑ์ค๋ฅผ ๊ฐ๊ฐ ๋ฐํํ๋ค.
์ ์์๋ฅผ ๋ณด๋ฉด, (index, ์์)๋ก ๋ฐํ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ ์ด ์ ๋ฌ๋ฌธ
(Control Transfer Statement)
์ ์ด ์ ๋ฌ๋ฌธ์ ํน์ ์ฝ๋์์ ๋ค๋ฅธ ์ฝ๋๋ก ์ ์ด๋ฅผ ์ด๋ํ์ฌ
์ฝ๋์ ์คํ ์์๋ฅผ ๋ณ๊ฒฝํ๋ ์ญํ ์ ํ๋ค.
์ ์ด ์ ๋ฌ๋ฌธ์๋
continue, break, fallthrough, throw, return์ด ์๋ค.
์ ๋ฆฌํ ๋ด์ฉ์ ์ผ๊ตฌ ๊ฒ์์์ ์ฌ์ฉ๋๋
continue์ break์ด๋ค!
continue
continue๋ ๊ตฌ๋ฌธ ์๋์ ์๋ ์คํ ๊ตฌ๋ฌธ๋ค์ ๊ฑด๋๋ฐ๊ณ
๋ค์ ๋ฐ๋ณต์ผ๋ก ๋์ด๊ฐ๊ฒ ํ๋ ์ญํ ์ ํ๋ค.
break
๋ฐ๋ณต๋ฌธ ํน์ธ switch ๊ตฌ๋ฌธ์์ ์ฌ์ฉ๋๋ค.
๋ฐ๋ณต๋ฌธ์์ ์ฌ์ฉ๋๋ฉด ์ฆ์ ๋ฐ๋ณต๋ฌธ์ ์ข
๋ฃํ๊ฒ ๋ง๋๋ ์ญํ ์ ํ๋ค.
switch ๊ตฌ๋ฌธ์์๋ ํน์ case๋ฅผ ์ถฉ์กฑํ๋ฉด ์ข
๋ฃํ๊ฒ ๋ง๋๋ ์ญํ ์ ํ๋ค.