์ƒ์„ธ ์ปจํ…์ธ 

๋ณธ๋ฌธ ์ œ๋ชฉ

[ Swift ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ] ์ œ์–ด ์ „๋‹ฌ๋ฌธ - break, continue, return, fallthrough / throw

๐ŸŽ iOS/Swift

by AHN.Jihyeon 2024. 5. 2. 09:31

๋ณธ๋ฌธ

 


๐Ÿ’ฌ  Introduction

์ œ์–ด ์ „๋‹ฌ๋ฌธ์€ ๋ฐ˜๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ์ฝ”๋“œ์˜ ์‹คํ–‰ ํ๋ฆ„์„ ๋ฐ”๊พธ๋Š”๋ฐ ์‚ฌ์šฉํ•œ๋‹ค. 

์–ด๋–ค ์กฐ๊ฑด์ด ๋˜๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ๋๋‚ด๊ฑฐ๋‚˜ ํ˜„์žฌ ํšŒ์ฐจ๋ฅผ ๋๋‚ด๊ณ  ๋ฐ”๋กœ ๋‹ค์Œ ํšŒ์ฐจ๋กœ ๋„˜์–ด ๊ฐ€๋Š” ๊ฒƒ ๋“ฑ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ์Šค์ฝ”ํ”„๋ฅผ ๋๋‚ด๊ณ  ๋‹ค์Œ์— ์‹คํ–‰ํ•  ์ฝ”๋“œ๋ฅผ ๋ฐ”๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ.

 

Swift์—๋Š” 5๊ฐ€์ง€ ์ œ์–ด ์ „๋‹ฌ๋ฌธ์ด ์žˆ๋‹ค.

break, continue, fallthrough, throw, return, 

 

 

 

continue๋Š” ์ œ์–ด๋ฅผ ๋‹ค์Œ ํšŒ์ฐจ๋กœ ์ „๋‹ฌ

index๊ฐ€ 5 ... 10๊นŒ์ง€๋Š” "end"๊ฐ€ ์ถœ๋ ฅ์ด ๋˜๊ณ  ๋‹ค์Œ ํšŒ์ฐจ ๋ฐ˜๋ณต

index๊ฐ€ 11์ด ๋˜๋ฉด ๋ฐ”๋กœ break๊ฐ€ ์‹คํ–‰ ๋˜๊ณ  ์‹คํ–‰ ์ค‘์ธ ๋ฌธ์žฅ์„ ๋๋‚ธ๋‹ค. 

์—ฌ๊ธฐ์„œ๋Š” for๋ฌธ์ด ๋๋‚˜๊ณ  for๋ฌธ ๋‹ค์Œ ๋ฌธ์žฅ์œผ๋กœ ์ „๋‹ฌ์ด ๋œ๋‹ค. 

 

 

 

 

๐Ÿ”Ž  1 . break


 : ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ์— ์ƒ๊ด€์—†์ด ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ๋ฌธ์žฅ์„ ์ฆ‰์‹œ ์ค‘์ง€ํ•˜๊ณ  ๋‹ค์Œ ๋ฌธ์žฅ์œผ๋กœ ์ œ์–ด๋ฅผ ์ „๋‹ฌ/์‹คํ–‰ํ•œ๋‹ค.

 

 

โœ…  switch ๊ตฌ๋ฌธ๊ณผ ๋ฐ˜๋ณต๋ฌธ์—์„œ ์‚ฌ์šฉ

switch๋ฌธ์—์„œ๋Š” ๋ฌธ์žฅ์„ ๋น„์›Œ๋‘๊ฑฐ๋‚˜ ๋ฌธ์žฅ์„ ์‹คํ–‰์‹œํ‚ค๊ณ  ์‹ถ์ง€ ์•Š์„ ๋•Œ ์‚ฌ์šฉ

๋ฐ˜๋ณต๋ฌธ์—์„œ๋Š” ๊ฐ€์žฅ ์ธ์ ‘ํ•œ ๋ฐ˜๋ณต๋ฌธ์„ ์•„์˜ˆ ์ค‘์ง€ ์‹œํ‚ฌ ๋•Œ ์‚ฌ์šฉ

1) switch ๊ตฌ๋ฌธ

1. case์—์„œ 1์ด ํ™€์ˆ˜์— ํ•ด๋‹น ๋˜๋ฏ€๋กœ "begin block" ์‹คํ–‰ ํ›„  if๋ฌธ์—์„œ break ํ˜ธ์ถœ

break๋Š” ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ๋ฌธ์žฅ์„ ์ค‘์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— case ๋ฌธ์žฅ๋„, switch ๋ฌธ์žฅ๋„ break์—์„œ ๋ฐ”๋กœ ๋๋‚œ๋‹ค.

๊ทธ๋ž˜์„œ "end block"์€ ์ถœ๋ ฅ๋˜์ง€ ์•Š๊ณ  ๋‹ค์Œ ๋ฌธ์žฅ์ธ "done"์ด ์ถœ๋ ฅ ๋œ๋‹ค.

-> ๋ฐ˜๋ณต ์‹คํ–‰ ๋ธ”๋ก์— ์‚ฌ์šฉ๋˜์–ด ์กฐ๊ฑด์ด false๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์ „์— ๋ฐ˜๋ณต๋ฌธ์„ ๋ฏธ๋ฆฌ ์ข…๋ฃŒ ์‹œํ‚ด.

 

2. derault ๋ถ€๋ถ„์—์„œ ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š์•„ ์ฝ”๋“œ๋ธ”๋ก์„ ๋น„์›Œ๋‘”๋‹ค๋ฉด ์ตœ์†Œํ•œ ํ•œ๋ฌธ์žฅ์€ ์ž…๋ ฅํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— break ์‚ฌ์šฉ

 

 

 2-1) ๋ฐ˜๋ณต๋ฌธ

2๊ฐ€ ๋˜๋ฉด break๊ฐ€ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— for๋ฌธ ์ž์ฒด๊ฐ€ ๋๋‚˜๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— 2๊นŒ์ง€๋งŒ ์ถœ๋ ฅ ๋œ๋‹ค.

 

 

 2-2) ๋ฐ˜๋ณต๋ฌธ ์ค‘์ฒฉ

์ถœ๋ ฅ ๊ฐ’

 

break๋Š” ๋ฌธ์žฅ์ด ์ค‘์ฒฉ๋˜์–ด ์žˆ์œผ๋ฉด ๊ฐ€์žฅ ์ธ์ ‘ํ•œ ๋ฌธ์žฅ๋งŒ ์ค‘์ง€ํ•˜๊ณ  ๋‚˜๋จธ์ง€ ๋ฌธ์žฅ์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค. 

๊ทธ๋ž˜์„œ inner loop๋Š” ์ค‘์ง€ ๋˜์—ˆ์ง€๋งŒ outer loop๋Š” ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์€ ๊ฒƒ.

 

 

 

 

 

๐Ÿ”Ž  2. continue


: ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ๋ฐ˜๋ณต ํšŒ์ฐจ๋ฅผ ๋ฐ”๋กœ ๋๋‚ด๊ณ  ๋‹ค์Œ ๋ฐ˜๋ณต ํšŒ์ฐจ๋กœ ๋„˜์–ด ๊ฐ„๋‹ค. 

๊ฐ€์žฅ ์ธ์ ‘ํ•œ ๋ฌธ์žฅ์—๋งŒ ์˜ํ–ฅ์„ ์ค€๋‹ค. 

 

 

๐Ÿ“ break์™€ continue์˜ ์ฐจ์ด์ 

- break ๊ตฌ๋ฌธ : ๋ฐ˜๋ณต๋ฌธ์„ ์™„์ „ํžˆ ์ข…๋ฃŒ!!!

- continue ๊ตฌ๋ฌธ : ๋ฐ˜๋ณต๋ฌธ์˜ ์กฐ๊ฑด์„ ๋‹ค์‹œ ํ‰๊ฐ€ํ•˜๊ณ  ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ๋‹ค์Œ ๋ฐ˜๋ณต ์ฃผ๊ธฐ ์‹คํ–‰   

 

โœ…  ๋ฐ˜๋ณต๋ฌธ์—์„œ ์‚ฌ์šฉ

1-1) ๋ฐ˜๋ณต๋ฌธ

 

- ์ง์ˆ˜ 2์ผ ๋•Œ ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ๋ฐ˜๋ณต ํšŒ์ฐจ๋ฅผ ์ฆ‰์‹œ ๋๋‚ด๊ณ 
print(index)๊นŒ์ง€ ๊ฐ€์ง€ ์•Š๋Š”๋‹ค. (2๋ฒˆ์งธ ํšŒ์ฐจ์— ํ•ด๋‹น๋˜๋Š” ๋‹ค์Œ ๋ฌธ์žฅ์ธ index ์ถœ๋ ฅ โŒ)

๋‹ค์Œ ํšŒ์ฐจ(ํ™€์ˆ˜ 3)๋กœ ๋„˜์–ด๊ฐ„๋‹ค. 

 

- break์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ๋ฐ”๋กœ for๋ฌธ ์ž์ฒด๋ฅผ ๋๋‚ด๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. 

 

 

1-2) ๋ฐ˜๋ณต๋ฌธ ์ค‘์ฒฉ

break์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฌธ์žฅ์ด ์ค‘์ฒฉ๋˜์–ด ์žˆ์œผ๋ฉด ๊ฐ€์žฅ ์ธ์ ‘ํ•œ ๋ฌธ์žฅ๋งŒ ์ค‘์ง€ํ•˜๊ณ  

์•ˆ์— ์žˆ๋Š” for๋ฌธ์€ ์ค‘์ง€ํ•˜์ง€๋งŒ ๋ฐ”๊นฅ์— ์žˆ๋Š” for๋ฌธ์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค. 

 

 

 

๐Ÿ”Ž  3. return


๐Ÿ”— ํ•จ์ˆ˜์™€ ํ•จ๊ป˜ ๊ฐœ๋… ๋ณด๊ธฐ

 

 

 

๐Ÿ”Ž  4. fallthrough


๐Ÿ”— ์กฐ๊ฑด๋ฌธ switch์™€ ํ•จ๊ป˜ ๊ฐœ๋… ๋ณด๊ธฐ

 

 

 

๐Ÿ”Ž  5. through


through ๋‹ค์Œ์— ์—๋Ÿฌ์˜ ํƒ€์ž…์„ ๋ฆฌํ„ดํ•˜๊ณ  ํ•จ์ˆ˜ ์‹คํ–‰์„ ์ค‘์ง€ํ•˜๊ณ  ๋๋‚ธ๋‹ค. 

 

 

 

 

 

๐Ÿ”— Reference 

- ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ Swift ํ•™์Šต์ž๋ฃŒ

 

๊ด€๋ จ๊ธ€ ๋”๋ณด๊ธฐ