Swift ๋ฃจํ ์ ์ด๋ฌธ์ ํตํ ๋ถํ์ํ ์ฐ์ฐ ์ ๊ฑฐ ๋ฐ ์์คํ ์๋ช ์ฃผ๊ธฐ ์ค๊ณ
Swift Break, Continue and Infinite Loops โ Taking Control of Your Loops ๐ฎ
AI ์์ฝ
Context
์์ฐจ์ ๋ฃจํ ์คํ ๋ฐฉ์์ ์กฐ๊ฑด ์ถฉ์กฑ ํ์๋ ๋ถํ์ํ ๋ฐ๋ณต์ ์ง์ํ๋ ์ค๋ฒํค๋ ๋ฐ์. ํนํ ์ค์ฒฉ ๋ฃจํ ๊ตฌ์กฐ์์ ๋ด๋ถ ๋ฃจํ๋ง ํ์ถํ๋ ์ ์ฝ์ผ๋ก ์ธํด ์ ์ฒด ํ๋ก์ธ์ค์ ํจ์จ์ ์ข ๋ฃ๊ฐ ์ด๋ ค์.
Technical Solution
continue๋ฅผ ํ์ฉํ ๋ถํ์ํ ๋ฐ์ดํฐ ํํฐ๋ง ๋ฐ ๋ค์ ๋ฐ๋ณต์ผ๋ก์ ์ฆ๊ฐ์ ์ธ ์ ์ด ๊ตฌ์กฐ ์ค๊ณbreak๋ฅผ ํตํ ๋ชฉํ ๋ฐ์ดํฐ ๋ฐ๊ฒฌ ์ฆ์ ๋ฃจํ๋ฅผ ์ข ๋ฃํ์ฌ ๋ถํ์ํ ๋๋จธ์ง ๋ฐ๋ณต ์ฐ์ฐ ์ ๊ฑฐwhile true๊ธฐ๋ฐ์ Infinite Loop ์ค๊ณ๋ฅผ ํตํ App Lifecycle ๋ฐ Game Loop์ ์ง์์ ์ํ ์ ์ง ๋ฐ ๋ ๋๋ง ๋ฉ์ปค๋์ฆ ๊ตฌํ- ๊ฐ๋ณ ์ํ๊ฐ์ ์์กดํ๋ Pseudo-infinite Loop ๊ตฌ์กฐ๋ฅผ ํตํ ์๋ฒ ํ๋ก์ธ์ค์ ๋์ ์ข ๋ฃ ์ ์ด ๊ฐ๋ฅ์ฑ ํ๋ณด
- Labeled Statements ๋์ ์ผ๋ก ์ค์ฒฉ๋ ๋ค์ค ๋ฃจํ๋ฅผ ํ ๋ฒ์ ํ์ถํ๋ ์ ์ด ํ๋ฆ ์ต์ ํ
Key Takeaway
์ ์ด๋ฌธ์ ์ ์ ํ ์ ํ์ ๋จ์ํ ์ฝ๋ ๊ฐ๋ ์ฑ์ ๋์ด๋ ๊ฒ์ ๋์ด CPU ์ฌ์ดํด ๋ญ๋น๋ฅผ ๋ง๋ ๋ฆฌ์์ค ์ต์ ํ์ ํต์ฌ์. ์์คํ ์ ์ฑ๊ฒฉ์ ๋ฐ๋ผ ๊ณ ์ ๋ฐ๋ณต๊ณผ ๋ฌดํ ๋ฃจํ์ ์ค๊ณ ์ ๋ต์ ๊ตฌ๋ถํ์ฌ ์ ์ฉํด์ผ ํจ.
์ค์ฒ ํฌ์ธํธ
1. ํํฐ๋ง ์กฐ๊ฑด ๋ฐ์ ์ `continue`๋ฅผ ์ฌ์ฉํ์ฌ ๋ฃจํ ๋ฐ๋์ ๋๋จธ์ง ๋ก์ง ์คํ์ ๋ฐฉ์งํ๋๊ฐ
2. ๋ชฉํ ๊ฐ ๋ฐ๊ฒฌ ์ฆ์ `break`๋ฅผ ํธ์ถํ์ฌ ๋ถํ์ํ ๋ฐ๋ณต ํ์๋ฅผ ์ต์ํํ๋๊ฐ
3. ์ค์ฒฉ ๋ฃจํ ํ์ถ ์ ๋ด๋ถ ๋ฃจํ๋ง ์ข ๋ฃ๋๋ ๋ ผ๋ฆฌ์ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด Labeled Statement๋ฅผ ๊ฒํ ํ๋๊ฐ
4. ์ฑ์ ๋ฉ์ธ ๋ฃจํ ์ค๊ณ ์ ์ํ ๋ณํ์ ๋ฐ๋ผ ์ข ๋ฃ ๊ฐ๋ฅํ Pseudo-infinite Loop ๊ตฌ์กฐ๋ฅผ ์ฑํํ๋๊ฐ