ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Swift] Conditional Statements (if, switch, guard) (์กฐ๊ฑด๋ฌธ)
    Swift 2022. 1. 10. 23:37

    (๋ชจ๋“  ์ฝ”๋“œ๋Š” Playground์—์„œ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.)

     

    Conditional Statements๋Š” ์กฐ๊ฑด๋ฌธ์ด๊ณ , ํŠน์ • ์กฐ๊ฑด์— ๋”ฐ๋ผ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

    ์กฐ๊ฑด๋ฌธ์—๋Š” if๋ฌธ, switch๋ฌธ, guard๋ฌธ์ด ์žˆ๋‹ค. 

     

    1. if ๋ฌธ

    if ๋ฌธ์˜ ๋ฌธ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

    if ๋ฐ”๋กœ ๋‹ค์Œ์— ์กฐ๊ฑด (condition) ์ด ์˜ค๋Š”๋ฐ, ์ด ์กฐ๊ฑด์€ Boolean ํ‘œํ˜„์‹์œผ๋กœ ์“ด๋‹ค. 

    ์กฐ๊ฑด์ด ์ฐธ์ธ์ง€ ๊ฑฐ์ง“์ธ์ง€๋งŒ ํŒ๋‹จํ•œ ํ›„์—, ์กฐ๊ฑด์ด ์ฐธ์ด๋ผ๋ฉด if ๋ธ”๋ก ๋‚ด์— ์žˆ๋Š” ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋œ๋‹ค. 

    ๋ฐ˜๋Œ€๋กœ ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ด๋ผ๋ฉด, if ๋ธ”๋ก ๋‚ด์— ์žˆ๋Š” ์ฝ”๋“œ๋Š” ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค.

     

     

    if ๋ฌธ์€ 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์“ธ ์ˆ˜ ์žˆ๋‹ค.

     

     

    ์ œ์ผ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ•์€ ์œ„์˜ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด if๋ฌธ ํ•˜๋‚˜๋งŒ ์“ฐ๋Š” ๊ฒฝ์šฐ์ด๋‹ค.

     

    ๊ทธ๋ฆฌ๊ณ  ์กฐ๊ฑด์ด ๋”ฑ 2๊ฐ€์ง€๋กœ ๋‚˜๋ˆ ์ง€๋Š” ๊ฒฝ์šฐ์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด if - else ๋ฌธ์„ ์ด์šฉํ•˜์—ฌ ์“ด๋‹ค.

    ์—ฌ๊ธฐ์„œ if ๋ฌธ์˜ ์กฐ๊ฑด์ด ์ฐธ์ด๋ผ๋ฉด if ๋ธ”๋ก ๋‚ด์˜ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๊ณ , else ๋ธ”๋ก ๋‚ด์˜ ์ฝ”๋“œ๋Š” ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค.

    ๋ฐ˜๋ฉด, if ๋ฌธ์˜ ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ด๋ผ๋ฉด if ๋ธ”๋ก ๋‚ด์˜ ์ฝ”๋“œ๋Š” ์‹คํ–‰๋˜์ง€ ์•Š๊ณ , else ๋ธ”๋ก ๋‚ด์˜ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ด๋‹ค.

     

    ์•„๋ž˜ ์ฝ”๋“œ๋Š” score == 100 ๋ผ๋Š” ์กฐ๊ฑด์ด ์ฐธ์ด๊ธฐ ๋•Œ๋ฌธ์— if ๋ธ”๋ก ๋‚ด์˜ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ด๋‹ค.

     

    ๊ทธ๋ ‡๋‹ค๋ฉด ์กฐ๊ฑด์„ ์—ฌ๋Ÿฌ ๊ฐœ๋กœ ๋‚˜๋ˆ ์•ผํ•  ๋•Œ์—๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?

    if - else if ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋ณด์ž.

    ์œ„์™€ ๊ฐ™์ด ์กฐ๊ฑด์„ ์—ฌ๋Ÿฌ ๊ฐœ๋กœ ๋‚˜๋ˆ ์•ผํ•  ๊ฒฝ์šฐ, if - else if ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. 

    ์ด ๋•Œ, else ๋ธ”๋ก์€ ์ถ”๊ฐ€ํ•ด๋„ ๋˜๊ณ , ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ํ•˜์ง€๋งŒ else ๋ฌธ์„ ์“ด๋‹ค๋ฉด, else ๋ฌธ์€ ํ•˜๋‚˜๋งŒ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.

    ๊ทธ๋ฆฌ๊ณ  ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜์˜ ์กฐ๊ฑด๋งŒ ๋งŒ์กฑ์ด ๋œ๋‹ค๋ฉด if ๋ฌธ์ด ์ข…๋ฃŒ๋œ๋‹ค.

     

     

    ์•„๋ž˜์˜ ์ฝ”๋“œ๋Š” ์ˆซ์ž๊ฐ€ 6์˜ ๋ฐฐ์ˆ˜์ธ์ง€ ํ™•์ธํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

    ํ•˜์ง€๋งŒ ์ด ์ฝ”๋“œ๋Š” "6์˜ ๋ฐฐ์ˆ˜"๋ผ๋Š” ์ถœ๋ ฅ์„ ์–ป์„ ์ˆ˜ ์—†๋‹ค.

    ์™œ๋ƒํ•˜๋ฉด 6์˜ ๋ฐฐ์ˆ˜๋Š” ๊ณง 2์˜ ๋ฐฐ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์—, ์ฒซ๋ฒˆ์งธ ์กฐ๊ฑด๋ฌธ์—์„œ 2์˜ ๋ฐฐ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ์ข…๋ฃŒ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

     

    ๋”ฐ๋ผ์„œ if ๋ฌธ์„ ์“ธ ๋•Œ ์กฐ๊ฑด์ด ์—ฌ๋Ÿฌ ๊ฐœ๋ผ๋ฉด, ๊ฐ€์žฅ ๊นŒ๋‹ค๋กœ์šด ์กฐ๊ฑด์„ ์•ž ์ชฝ์— ์จ์ฃผ์–ด์•ผํ•œ๋‹ค. ์ฆ‰, ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ์ ์€ ๊ฒƒ์„ ๋” ์•ž์ชฝ์— ์จ์ฃผ์–ด์•ผํ•œ๋‹ค.

    ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 


    2. switch ๋ฌธ

    switch ๋ฌธ์˜ ๋ฌธ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

    if ๋ฌธ์€ if ๋‹ค์Œ์— ์กฐ๊ฑด (boolean ํ‘œํ˜„์‹)์ด ์™”์ง€๋งŒ, switch ๋ฌธ์€ switch ๋‹ค์Œ์— value ํ‘œํ˜„์‹์ด ์˜จ๋‹ค!

    ๋”ฐ๋ผ์„œ value ํ‘œํ˜„์‹์—๋Š” ์–ด๋–ค ๊ฐ’์ด๋“  ์˜ฌ ์ˆ˜ ์žˆ๊ณ , case ๋‹ค์Œ์— ์˜ค๋Š” pattern์—๋Š” value์˜ ๊ฐ’๊ณผ ๋น„๊ตํ•  ๊ฐ’์ด ์˜จ๋‹ค.

     

    switch๋ฌธ์€ ์œ„์™€ ๊ฐ™์ด ๊ฐ’์˜ ์ผ์น˜ ์—ฌ๋ถ€์— ๋”ฐ๋ผ์„œ ์‹คํ–‰ํ•  ์ฝ”๋“œ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.

    ๋˜ํ•œ ํ•˜๋‚˜์˜ ์ผ€์ด์Šค๋งŒ ๋งค์นญ๋˜๋ฉด ๋ฐ”๋กœ switch๋ฌธ์ด ์ข…๋ฃŒ๋œ๋‹ค.

     

    ๋”ฐ๋ผ์„œ case ๋ธ”๋ก์€ ๋ฐ˜๋“œ์‹œ 1๊ฐœ ์ด์ƒ ์ž‘์„ฑํ•ด์•ผํ•˜๊ณ , ์›ํ•˜๋Š” ๋งŒํผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

    default ๋ธ”๋ก์€ case ๋ธ”๋ก์—์„œ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์— ๋Œ€ํ•ด์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ๋Š” ๊ฒƒ์ธ๋ฐ, ๋ฐ˜๋“œ์‹œ 1๊ฐœ๋งŒ ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 

     

    ๋งŒ์•ฝ case ๋ธ”๋ก์—์„œ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋‹ค ์ฒ˜๋ฆฌ๋œ๋‹ค๋ฉด, default ๋ธ”๋ก์˜ ์ƒ๋žต์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

    ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋‹ค ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š๋Š”๋ฐ default ๋ธ”๋ก์„ ์ƒ๋žตํ•˜๋Š” ๊ฒฝ์šฐ, ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. 

    ๋”ฐ๋ผ์„œ default ๋ธ”๋ก์—๋Š” ๋ฐ˜๋“œ์‹œ case ๋ธ”๋ก์—์„œ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋ฅผ ์ฒ˜๋ฆฌํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค!

     

    ๋˜ํ•œ, switch ๋ฌธ์˜ case ๋ธ”๋ก, default ๋ธ”๋ก์€ ๋น„์–ด์žˆ๋Š” ์ƒํƒœ๋กœ ๋‘์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค. 

    ๋งŒ์•ฝ ์•„๋ž˜์™€ ๊ฐ™์ด ๋น„์–ด์žˆ๋Š” ์ƒํƒœ๋กœ ๋‘”๋‹ค๋ฉด, ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค. ๋ฌด์กฐ๊ฑด ํ•œ ์ค„ ์ด์ƒ์˜ ์‹คํ–‰๊ฐ€๋Šฅํ•œ ๋ฌธ์žฅ์ด ํฌํ•จ๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

     

    ๋”ฐ๋ผ์„œ switch ๋ฌธ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘์„ฑํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

     

    switch ๋ฌธ์€ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฒ”์œ„๋ฅผ ๋งค์นญ์‹œํ‚ค๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•œ๋ฐ, ์ด๋ฅผ Interval Matching ์ด๋ผ๊ณ  ํ•œ๋‹ค.

     

    ์ž„์˜๋กœ 12์›” ~ 2์›”์€ ๊ฒจ์šธ, 3์›” ~ 5์›”์€ ๋ด„, 6์›” ~ 8์›”์€ ์—ฌ๋ฆ„, 9์›” ~ 11์›”์€ ๊ฐ€์„์ด๋ผ๊ณ  ๋‘์—ˆ๋‹ค.

    ํ˜„์žฌ month๋Š” 5์ด๊ธฐ ๋•Œ๋ฌธ์—, 2๋ฒˆ์งธ case ๋ธ”๋ก ๋‚ด์˜ "๋ด„"์ด ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

     

    ์•ž์„œ switch ๋ฌธ์€ ํ•˜๋‚˜์˜ case ๋ฌธ์ด ๋งค์นญ๋˜๋ฉด ๋ฐ”๋กœ switch ๋ฌธ์ด ์ข…๋ฃŒ๋œ๋‹ค๊ณ  ๋งํ–ˆ๋Š”๋ฐ,

    case ๋ฌธ์ด ๋งค์นญ๋˜์–ด๋„ ๊ณ„์†ํ•ด์„œ ๊ฐ’์˜ ๋งค์นญ๊ณผ ์ƒ๊ด€์—†์ด ๊ทธ ๋‹ค์Œ case ๋ธ”๋ก์„ ์‹คํ–‰์‹œํ‚ค๊ณ  ์‹ถ์„ ๋•Œ์—๋Š” Fall Through๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

    ํ•˜์ง€๋งŒ switch ๋ฌธ์€ ๊ฐ’์˜ ๋งค์นญ์— ๋”ฐ๋ผ case ๋ธ”๋ก์„ ์‹คํ–‰ํ•˜๋Š” value matching ์ด๊ธฐ ๋•Œ๋ฌธ์—, Fall Through๋Š” ๊ฐ€๊ธ‰์  ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. 

     

    Fall through๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•„๋ž˜ ์ฝ”๋“œ์™€ ๊ฐ™์ด case 2, case 3์˜ ๋ธ”๋ก๋งŒ ์‹คํ–‰๋œ๋‹ค.

     

    3. guard ๋ฌธ

    Swift์—์„œ guard ๋ฌธ์€ Early Exit๋ผ๋Š” ๊ฒƒ์„ ์ง€์›ํ•˜๋Š”๋ฐ,

    ์ด๋Š” ์›ํ•˜๋Š” ์กฐ๊ฑด์ด ์ถฉ์กฑ๋˜์ง€ ์•Š์œผ๋ฉด, ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ์ผ์ฐ ์ข…๋ฃŒ์‹œํ‚ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

     

    guard ๋ฌธ์˜ ๋ฌธ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

    guard ๋’ค์— boolean ํ‘œํ˜„์‹์ธ ์กฐ๊ฑด (condition) ์ด ์˜ค๊ณ , else ๋ธ”๋ก์ด ์กด์žฌํ•œ๋‹ค.

    ์—ฌ๊ธฐ์„œ condition์ด ์ฐธ์ด๋ผ๋ฉด else ๋ธ”๋ก์„ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ , condition์ด ๊ฑฐ์ง“์ด๋ผ๋ฉด else ๋ธ”๋ก์ด ์‹คํ–‰๋œ๋‹ค.

     

     

    ์ถ”๊ฐ€๋กœ guard ๋ฌธ์€ Optional Binding๊ณผ๋„ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ๋Š” ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋งŒ ์‚ดํŽด๋ณด๊ณ  ๋’ค์—์„œ ์ž์„ธํžˆ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž!

     

     

    guard ๋ฌธ์€ Local scope์—์„œ ์‚ฌ์šฉ๋˜๊ณ , else ๋ธ”๋ก ๋‚ด์—๋Š” ๋ฐ˜๋“œ์‹œ ์ฝ”๋“œ์˜ ์‹คํ–‰์„ ์ค‘์ง€์‹œํ‚ค๋Š” ๋ฌธ์žฅ์ด ์™€์•ผํ•œ๋‹ค.

    ๋‹ค์‹œ ๋งํ•ด, else ๋ธ”๋ก์€ ํ•ด๋‹นํ•˜๋Š” Local scope์˜ ์‹คํ–‰์„ ์ข…๋ฃŒ์‹œ์ผœ์•ผํ•œ๋‹ค.

    ๋”ฐ๋ผ์„œ else ๋ธ”๋ก์—๋Š” return, throw, break, continue ์ค‘ ํ•˜๋‚˜๊ฐ€ ์˜ค๋ฉด ๋œ๋‹ค.

     

     

    ์•„๋ž˜ ์ฝ”๋“œ๋Š” guard ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง์ˆ˜๋ฅผ ํŒ๋ณ„ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. 

     

    num์ด 2์ผ ๊ฒฝ์šฐ, guard ๋ฌธ์˜ ์กฐ๊ฑด์ด ์ฐธ์ด๊ธฐ ๋•Œ๋ฌธ์— else ๋ธ”๋ก ๋‚ด์˜ ์ฝ”๋“œ๋Š” ์‹คํ–‰๋˜์ง€ ์•Š๊ณ , ๊ทธ ๋‹ค์Œ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋œ๋‹ค.

    num์ด 3์ผ ๊ฒฝ์šฐ, guard ๋ฌธ์˜ ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ด๊ธฐ ๋•Œ๋ฌธ์— else ๋ธ”๋ก ๋‚ด์˜ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๊ณ , ํ•จ์ˆ˜์˜ ์‹คํ–‰์ด ์ข…๋ฃŒ๋œ๋‹ค.

     

     

     

    guard ๋ฌธ์€ if ๋ฌธ๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ ๋‹ค๋ฅด๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— guard ๋ฌธ์€ if ๋ฌธ์œผ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๊ณ , if ๋ฌธ ๋˜ํ•œ guard ๋ฌธ์œผ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.

    ๊ทธ๋ ‡๋‹ค๋ฉด ์–ธ์ œ if ๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ณ , ์–ธ์ œ guard ๋ฌธ์„ ์‚ฌ์šฉํ•ด์•ผํ• ๊นŒ?

    ์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.

     

    ์•„๋ž˜ ์ฝ”๋“œ๋Š” ๊ฐ๊ฐ if ์™€ guard ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ num์— ์ •์ˆ˜๊ฐ€ ์ €์žฅ๋˜์–ด์žˆ๊ณ , ๊ทธ ๊ฐ’์ด 5 ์ด์ƒ์ด๋ผ๋ฉด ๊ทธ ์ˆซ์ž๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.

    ์™ผ์ชฝ : if ๋ฌธ / ์˜ค๋ฅธ์ชฝ : guard ๋ฌธ

    ํ˜„์žฌ ๋‘ ํ•จ์ˆ˜ ๋ชจ๋‘ num์€ Optional Intํ˜•์ด๊ณ , nil ๊ฐ’์ด ์ €์žฅ๋œ ์ƒํƒœ์ด๋‹ค.

    ๋‘ ํ•จ์ˆ˜ ๋ชจ๋‘ ์ฒซ๋ฒˆ์งธ if / guard ๋ฌธ์—์„œ num์— ๊ฐ’์ด ์ €์žฅ๋˜์–ด์žˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๊ณ , ๋งŒ์•ฝ ๊ฐ’์ด ์ €์žฅ๋˜์–ด์žˆ๋‹ค๋ฉด validNum์— num์˜ ๊ฐ’์„ ์ €์žฅํ•ด์ค€๋‹ค. ์ด๋ ‡๊ฒŒ ๊ฐ’์„ ์ €์žฅํ•ด์ฃผ๋Š” ๊ฒƒ์„ binding (๋ฐ”์ธ๋”ฉ) ์ด๋ผ๊ณ  ํ•œ๋‹ค. 

     

    if ๋ฌธ์˜ ๊ฒฝ์šฐ, ๋ฐ”์ธ๋”ฉ์— ์„ฑ๊ณตํ•˜๋ฉด ๊ทธ ๋‹ค์Œ if ๋ฌธ์œผ๋กœ ๋“ค์–ด๊ฐ€์„œ validNum์— ์ €์žฅ๋œ ๊ฐ’์ด 5 ์ด์ƒ์ด๋ผ๋ฉด ๊ทธ ์ˆซ์ž๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

     

    guard ๋ฌธ์˜ ๊ฒฝ์šฐ, ๋ฐ”์ธ๋”ฉ์— ์„ฑ๊ณตํ•˜๋ฉด else ๋ธ”๋ก์„ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ๊ทธ ๋‹ค์Œ guard ๋ฌธ์œผ๋กœ ๋„˜์–ด๊ฐ€์„œ ์กฐ๊ฑด์„ ํŒ๋ณ„ํ•œ๋‹ค.

    ์ด ๋•Œ, ์ฒซ๋ฒˆ์งธ guard ๋ฌธ์˜ else ๋ธ”๋ก ๋‚ด์—์„œ๋Š” validNum์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค. else ๋ธ”๋ก์€ validNum์— ๊ฐ’ ์ €์žฅํ•˜๋Š” ๊ฒƒ์„ ์‹คํŒจํ–ˆ์„ ๋•Œ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ๋‹น์—ฐํ•œ ๊ฒƒ์ด๋‹ค.

    ์ฒซ๋ฒˆ์งธ guard ๋ฌธ์˜ ์กฐ๊ฑด์ด ์ฐธ์œผ๋กœ ํŒ๋‹จ๋˜๊ณ  ๋‚˜๋ฉด, ๊ทธ ๋‹ค์Œ๋ถ€ํ„ฐ๋Š” ์ด์ œ validNum์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

     

     

     

     

    ์ •๋ฆฌ

    if ๋ฌธ์€ ์กฐ๊ฑด์ด ๋‹จ์ˆœํ•˜๊ฑฐ๋‚˜, ๋ฐ”์ธ๋”ฉํ•œ ์ƒ์ˆ˜๋ฅผ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ์ž„์‹œ ๊ฐ’ (์˜ˆ์‹œ์˜ validNum) ์œผ๋กœ ์‚ฌ์šฉํ•  ๋•Œ ์“ด๋‹ค.

    guard ๋ฌธ์€ ์กฐ๊ฑด์ด ๋ณต์žกํ•˜๊ฑฐ๋‚˜, ๋ฐ”์ธ๋”ฉํ•œ ์ƒ์ˆ˜ (์˜ˆ์‹œ์˜ validNum) ์ฒ˜๋Ÿผ ๋™์ผํ•œ scope์—์„œ ๊ณ„์† ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผํ•  ๊ฒฝ์šฐ์— ์“ด๋‹ค.

    ๊ทธ๋ฆฌ๊ณ  guard ๋ฌธ์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ if ๋ฌธ์˜ ์ค‘์ฒฉ์„ ํ”ผํ•  ์ˆ˜ ์žˆ๊ณ , ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๋„ ๋†’์ผ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ž˜ ํ™œ์šฉํ•ด์„œ ์“ธ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์ž!

    ๋Œ“๊ธ€

Designed by Tistory.