๊ณต๋ถ€ ์—ฐ์Šต์žฅ :-)

์กฐ๊ฑด๋ฌธ switch-case, fallthrough

|

switch-case

switch <๋น„๊ต๋Œ€์ƒ> {
    case <๋น„๊ตํŒจํ„ด1> :
  	<๋น„๊ต ํŒจํ„ด1์ด ์ผ์น˜ํ–ˆ์„๋•Œ ์‹คํ–‰ํ•  ๊ตฌ๋ฌธ>
  	case <๋น„๊ตํŒจํ„ด2>, <๋น„๊ตํŒจํ„ด3> : //(ex. case 2, 3: )
  	<๋น„๊ต ํŒจํ„ด 2๊ฐ€ ์ผ์น˜ํ–ˆ์„๋•Œ ์‹คํ–‰ํ•  ๊ตฌ๋ฌธ>
  	default :
  	<์–ด๋Š ๋น„๊ตํŒจํ„ด๊ณผ๋„ ์ผ์น˜ํ•˜์ง€ ์•Š์•˜์„๋•Œ ์‹คํ–‰ํ•  ๊ตฌ๋ฌธ>
}
  • ์ผ์น˜ํ•˜๋Š” ๋น„๊ตํŒจํ„ด์ด ์žˆ์„๊ฒฝ์šฐ ํ•ด๋‹น ๋ธ”๋ก์„ ์‹คํ–‰ํ•˜๊ณ  ์ „์ฒด ๋ถ„๊ธฐ๋ฌธ ์ข…๋ฃŒ
  • ์ผ์น˜ํ•˜๋Š” ๋น„๊ตํŒจํ„ด์ด ๋˜ ์žˆ๋”๋ผ๋„ ์ผ์น˜ํ•˜๋Š” ๊ฒƒ ํ•˜๋‚˜๋งŒ ์‹คํ–‰ํ•˜๊ณ  ์ข…๋ฃŒํ•จ

fallthrough

let sampleChar: Character = "a"

switch sampleChar {
    case "a" :
  		fallthrough
  	case "A" :
  		print("๊ธ€์ž๋Š” A์ž…๋‹ˆ๋‹ค.")
  	default : 
  		print("์ผ์น˜ํ•˜๋Š” ๊ธ€์ž๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.")
}
  • case๋ฌธ์ด ๋น„์–ด์žˆ์œผ๋ฉด ์•ˆ๋จ
  • ๋ช…์‹œ์ ์œผ๋กœ fallthrough๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น case๋ฌธ(case1)์€ ๋น„๊ตํŒจํ„ด์ด ์ผ์น˜ํ•œ ๊ฒฝ์šฐ ๊ทธ ๋‹ค์Œ case(case2)๋ฌธ์œผ๋กœ ํ๋ฆ„์„ ์ „๋‹ฌ
  • ์‹คํ–‰ํ๋ฆ„์„ ์ „๋‹ฌ๋ฐ›์€ case2๊ตฌ๋ฌธ์€ ๋น„๊ตํŒจํ„ด์˜ ์ผ์น˜์—ฌ๋ถ€์™€ ์ƒ๊ด€์—†์ด ์ž‘์„ฑ๋œ ๊ตฌ๋ฌธ์„ ์‹คํ–‰ํ•œํ›„ switch๋ฌธ์„ ์ข…๋ฃŒ
  • default : case๋ฌธ์—์„œ ์ผ์น˜ํ•˜๋Š” ์ผ€์ด์Šค๋ฅผ ์ฐพ์ง€ ๋ชปํ–ˆ์„ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ default๊ฐ€ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜๊ณ , ๋ชจ๋“  case๋ฌธ์— ๋ชจ๋“  ํŒจํ„ด์„ ๋งค์นญ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์— ํ•œํ•ด default๋ฌธ์„ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค.
var value = (2,3)

switch value {
    case let (x,3) :
  		print("ํŠœํ”Œ์˜ ๋‘ ๋ฒˆ์งธ ๊ฐ’์ด 3์ผ๋•Œ ์ฒซ๋ฒˆ์งธ ๊ฐ’์€ \(x)์ž…๋‹ˆ๋‹ค")
    case let (x,3) :
  		print(abc)
    case let (x,3) :
  		print(abc)
}
  • ์ถœ๋ ฅํ•จ์ˆ˜ ๋‚ด์—์„œ ๋ณ€์ˆ˜๋ฅผ ๋ฐ›์•„์„œ ์ถœ๋ ฅํ• ๋•Œ \ (๋ณ€์ˆ˜์ด๋ฆ„)

###

Comments