๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป/Swift

8. ์กฐ๊ฑด๋ฌธ - iOS ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•œ ์Šค์œ„ํ”„ํŠธ ๊ธฐ์ดˆ

reujusong 2020. 6. 17. 16:36
  • if-else
  • switch

 

 - if-else ๊ตฌ๋ฌธ

  • if-else ๊ตฌ๋ฌธ์˜ ๊ธฐ๋ณธ ํ˜•ํƒœ
  • if๋งŒ ๋‹จ๋…์œผ๋กœ ์‚ฌ์šฉํ•ด๋„๋˜๊ณ , else, else if ์™€ ์กฐํ•ฉํ•ด์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • if ๋’ค์˜ ์กฐ๊ฑด ๊ฐ’์—๋Š” Bool ํƒ€์ž…์˜ ๊ฐ’๋งŒ ์œ„์น˜ํ•ด์•ผ ํ•œ๋‹ค. 
  • ์กฐ๊ฑด์„ ๊ฐ์‹ธ๋Š” ์†Œ๊ด„ํ˜ธ๋Š” ์„ ํƒ์‚ฌํ•ญ์ด๋‹ค.

 

let someInteger = 100

if someInteger < 100 {
    print("100 ๋ฏธ๋งŒ")
} else if someInteger > 100 {
    print("100 ์ดˆ๊ณผ")
} else {
    print("100")
} // 100

// ์Šค์œ„ํ”„ํŠธ์˜ ์กฐ๊ฑด์—๋Š” ํ•ญ์ƒ Bool ํƒ€์ž…์ด ๋“ค์–ด์™€์•ผ ํ•œ๋‹ค.
// someInteger๋Š” Bool ํƒ€์ž…์ด ์•„๋‹Œ Int ํƒ€์ž…์ด๊ธฐ ๋•Œ๋ฌธ์— ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
//if someInteger { } (X)

 

 - switch ๊ตฌ๋ฌธ

  • ์Šค์œ„ํ”„ํŠธ์˜ switch ๊ตฌ๋ฌธ์€ ๋‹ค๋ฅธ ์–ธ์–ด์— ๋น„ํ•ด ๊ต‰์žฅํžˆ ๊ฐ•๋ ฅํ•œ ํž˜์„ ๋ฐœํœ˜ํ•œ๋‹ค.

  • ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋˜ ์ •์ˆ˜ํƒ€์ž…์˜ ๊ฐ’๋งŒ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋Œ€๋ถ€๋ถ„์˜ ์Šค์œ„ํ”„ํŠธ ๊ธฐ๋ณธ ํƒ€์ž…์„ ์ง€์›ํ•˜๋ฉฐ, ๋‹ค์–‘ํ•œ ํŒจํ„ด๊ณผ ์‘์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ์Šค์œ„ํ”„ํŠธ์˜ ๋‹ค์–‘ํ•œ ํŒจํ„ด์€ Swift Programming Language Reference์˜ ํŒจํ„ด ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ฐ๊ฐ์˜ case ๋‚ด๋ถ€์—๋Š” ์‹คํ–‰๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๊ฐ€ ๋ฐ˜๋“œ์‹œ ์œ„์น˜ํ•ด์•ผ ํ•œ๋‹ค.
  • ๋งค์šฐ ํ•œ์ •์ ์ธ ๊ฐ’(ex. enum์˜ case ๋“ฑ)์ด ๋น„๊ต๊ฐ’์ด ์•„๋‹Œ ํ•œ default ๊ตฌ๋ฌธ์€ ๋ฐ˜๋“œ์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.
  • ๋ช…์‹œ์  break๋ฅผ ํ•˜์ง€ ์•Š์•„๋„ ์ž๋™์œผ๋กœ case๋งˆ๋‹ค break ๋œ๋‹ค.
  • fallthrough ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ break๋ฅผ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์‰ผํ‘œ(,)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜๋‚˜์˜ case์— ์—ฌ๋Ÿฌ ํŒจํ„ด์„ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ๋‹ค. (or์˜ ์—ญํ• )

 

// ๋ฒ”์œ„ ์—ฐ์‚ฐ์ž๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋”์šฑ ์‰ฝ๊ณ  ์œ ์šฉํ•˜๋‹ค
switch someInteger {
case 0:
    print("zero")
case 1..<100:
    print("1~99")
case 100:
    print("100")
case 101...Int.max:
    print("over 100")
default:
    print("unknown")
} // 100

// ์ •์ˆ˜ ์™ธ์˜ ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๋ณธ ํƒ€์ž…์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค
switch "kdgt" {
case "jake":
    print("jake")
case "mina":
    print("mina")
case "kdgt":
    print("kdgt!!")
default:
    print("unknown")
} // kdgt!!