Swift

[ Swift ] ํ๋ฆ„ ์ œ์–ด(1) - ์กฐ๊ฑด๋ฌธ ( if ๊ตฌ๋ฌธ, switch ๊ตฌ๋ฌธ )

Forest Yun 2021. 8. 18. 15:08
728x90

๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

 

 

 

 

 ํ๋ฆ„ ์ œ์–ด(1) - ์กฐ๊ฑด๋ฌธ

  1. if ๊ตฌ๋ฌธ
  2. switch ๊ตฌ๋ฌธ

 

 

 

 

 

 


1. if ๊ตฌ๋ฌธ

  • ์Šค์œ„ํ”„ํŠธ์˜ if ๊ตฌ๋ฌธ์€ ์กฐ๊ฑด์˜ ๊ฐ’์ด ๊ผญ Bool ํƒ€์ž…์ด์–ด์•ผ ํ•œ๋‹ค. 
  • ํ•œ ์กฐ๊ฑด๋ฌธ์„ ์ถฉ์กฑํ•ด ๋ธ”๋ก ๋‚ด๋ถ€์˜ ๋ช…๋ น๋ฌธ์ด ์‹คํ–‰๋˜๋ฉด, ์ด์–ด์ง„ else if ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋”๋ผ๋„ ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  ์กฐ๊ฑด๋ฌธ์„ ๋น ์ ธ๋‚˜์˜จ๋‹ค.
  • (์†Œ๊ด„ํ˜ธ)์— ์กฐ๊ฑด์‹์„ ์ ๋Š” ๊ฒƒ์ด ๊ธฐ๋ณธ์ด์ง€๋งŒ ์†Œ๊ด„ํ˜ธ๋ฅผ ์ƒ๋žตํ•ด๋„ ๋œ๋‹ค.

 

var num1: Int = 5
var num2: Int = 5

if num1 >= num2 {
	print("num1์ด num2 ์ด์ƒ์ด๋‹ค.")
} 
else if num1 == num2 {
//์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋”๋ผ๋„ ์ด๋ฏธ ์•ž์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์—ฌ ๋ธ”๋ก ๋‚ด๋ถ€ ๋ช…๋ น๋ฌธ์ด ์‹คํ–‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์กฐ๊ฑด๋ฌธ์„ ๋น ์ ธ๋‚˜์˜จ๋‹ค.
	print("num1์ด num2๊ณผ ๊ฐ™๋‹ค.")
}
else {
	print("๋ชจ๋ฅด๊ฒ ๋‹ค.")
}

 

 

 

 

 

 

 

 


2. switch ๊ตฌ๋ฌธ

  • ํ•œ case ์กฐ๊ฑด์„ ์ถฉ์กฑํ•  ๋•Œ, ํ•ด๋‹น case ๋‚ด๋ถ€ ๋ช…๋ น๋ฌธ์„ ์‹คํ–‰ํ•˜๋ฉด break์ด ์—†์–ด๋„ switch ๊ตฌ๋ฌธ์ด ์ข…๋ฃŒ๋œ๋‹ค.
  • ๋”ฐ๋ผ์„œ switch ๊ตฌ๋ฌธ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋˜ 'case ์—ฐ์† ์‹คํ–‰ ๋ฐฉ๋ฒ•'์€ swift์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. swift์—์„œ 'case ์—ฐ์† ์‹คํ–‰ ๋ฐฉ๋ฒ•' ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด fallthrough ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
  • ์ •์ˆ˜ ํƒ€์ž…๋งŒ ๊ฐ€๋Šฅํ•œ ๋‹ค๋ฅธ ์–ธ์–ด์™€๋Š” ๋‹ค๋ฅด๊ฒŒ, swift์˜ switch ๊ตฌ๋ฌธ ์กฐ๊ฑด์—๋Š” ๋‹ค์–‘ํ•œ ๊ฐ’์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.
  • switch ๊ตฌ๋ฌธ์˜ ์ž…๋ ฅ ๊ฐ’์œผ๋กœ ์ •์ˆ˜, ๋ถ€๋™์†Œ์ˆ˜, ๋ฌธ์ž, ๋ฌธ์ž์—ด, ์—ด๊ฑฐํ˜•, ํŠœํ”Œ, ๋ฒ”์œ„, ํŒจํ„ด์— ์ ์šฉ๋œ ํƒ€์ž… ๋“ฑ ๊ฐ€๋Šฅ
  • ๋ฒ”์œ„ ์—ฐ์‚ฐ์ž, where ์ ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ๊ฑด์„ ํ™•์žฅํ•  ์ˆ˜๋„ ์žˆ๋‹ค. (์ถ”ํ›„ ๊ณต๋ถ€)
  • ๋น„๊ต ๊ฐ’์ด ๋ช…ํ™•ํžˆ ํ•œ์ •๋œ ๊ฐ’(์—ด๊ฑฐ๊ฐ’ ๋“ฑ)์ด ์•„๋‹ ๋•Œ๋Š”, default๋ฅผ ํ•„์ˆ˜์ ์œผ๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.
  • (์†Œ๊ด„ํ˜ธ)์— ์กฐ๊ฑด์‹์„ ์ ๋Š” ๊ฒƒ์ด ๊ธฐ๋ณธ์ด์ง€๋งŒ ์†Œ๊ด„ํ˜ธ๋ฅผ ์ƒ๋žตํ•ด๋„ ๋œ๋‹ค.
  • ํ•œ case์— ๋น„๊ต ๊ฐ’์„ ์—ฌ๋Ÿฌ ๊ฐœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ•œ case ๋‹น ์‹คํ–‰ํ•  ๋ฌธ์žฅ์ด  ๊ผญ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์‹คํ–‰ํ•  ๋ฌธ์žฅ์—†์ด 'case ์—ฐ์† ์‹คํ–‰'์„ ์œ„ํ•ด fallthrough ๊ตฌ๋ฌธ๋งŒ ์ž‘์„ฑํ•ด๋„ ๋œ๋‹ค. (์ด์œ : ๊ทธ ๋‹ค์Œ case์˜ ์‹คํ–‰ ๋ฌธ์žฅ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ)

 

 

์ •์ˆ˜ switch ๊ตฌ๋ฌธ ๊ธฐ๋ณธ ํ‘œํ˜„

let numberTest: Int = 3

switch numberTest {
case 0:
    print("0")
case 1...10:
    print("1~10")
    fallthrough
case 3, 6, 9:
    print("3 ๋˜๋Š” 6 ๋˜๋Š” 9์™€ ๊ฐ™๋‹ค.")
case 11...20:
    fallthrough
case 15:
    print("15์ž…๋‹ˆ๋‹ค.")
default:
    print("ํ•ด๋‹นํ•˜๋Š” case๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.")
}

//1~10
3 ๋˜๋Š” 6 ๋˜๋Š” 9์™€ ๊ฐ™๋‹ค.

 

 

 

 

ํŠœํ”Œ switch ๊ตฌ๋ฌธ

ํŠœํ”Œ์€ ์™€์ผ๋“œ์นด๋“œ ์‹๋ณ„์ž(_)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์œ ์šฉํ•˜๋‹ค.

let์„ ๋ถ™์ธ ๊ฐ’ ๋ฐ”์ธ๋”ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅ ๊ฐ’์˜ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

typealias colorAndFruit = (color: String, fruit: String) //ํƒ€์ž… ๋ณ„์นญ ์‚ฌ์šฉ

let inputValue: colorAndFruit = ("red", "banana")

switch inputValue {
case ("red", "apple"):
    print("์ •๋‹ต์ž…๋‹ˆ๋‹ค.")
case ("red", _):
    print("์ƒ‰๋งŒ ๋งž์ท„์Šต๋‹ˆ๋‹ค. ๊ณผ์ผ์€ \(inputValue.fruit)์ž…๋‹ˆ๋‹ค.")
case (let color, "apple"):
    print("๊ณผ์ผ๋งŒ ๋งž์ท„์Šต๋‹ˆ๋‹ค. ์ƒ‰์€ \(color)์ž…๋‹ˆ๋‹ค.")
default:
    print("์˜ค๋‹ต์ž…๋‹ˆ๋‹ค.")
}

//์ƒ‰๋งŒ ๋งž์ท„์Šต๋‹ˆ๋‹ค. ๊ณผ์ผ์€ banana์ž…๋‹ˆ๋‹ค.

 

 

 

 

 

์—ด๊ฑฐํ˜•์„ ์ž…๋ ฅ ๊ฐ’์œผ๋กœ ๋ฐ›๋Š” switch ๊ตฌ๋ฌธ

์—ด๊ฑฐํ˜•๊ฐ™์ด ํ•œ์ •๋œ ๋ฒ”์œ„์˜ ๊ฐ’์„ ์ž…๋ ฅ๊ฐ’์œผ๋กœ ๋ฐ›๊ฒŒ ๋  ๋•Œ ๊ฐ’์— ๋Œ€์‘ํ•˜๋Š” ๊ฐ case๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค๋ฉด default๋ฅผ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

๋งŒ์•ฝ ๊ฐ’์— ๋Œ€ํ•œ ๋ชจ๋“  case๋ฅผ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ํ•„์ˆ˜์ ์œผ๋กœ default๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค.

https://88yhtserof.tistory.com/25?category=966954 

 

[ SWIFT ] ๋ฐ์ดํ„ฐ ํƒ€์ž… ๊ณ ๊ธ‰(3) - ์—ด๊ฑฐํ˜•

๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ํƒ€์ž… ๊ณ ๊ธ‰(3) ์—ด๊ฑฐํ˜• ๊ธฐ๋ณธ ์—ด๊ฑฐํ˜• ์›์‹œ ๊ฐ’ ์—ฐ๊ด€ ๊ฐ’ ํ•ญ๋ชฉ ์ˆœํšŒ ์ˆœํ™˜ ์—ด๊ฑฐํ˜• ๋น„๊ต ๊ฐ€๋Šฅํ•œ ์—ด๊ฑฐํ˜• 1. ์—ด๊ฑฐํ˜• : ์—ฐ๊ด€๋œ ํ•ญ๋ชฉ๋“ค์„ ๋ฌถ์–ด์„œ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ํƒ€์ž….

88yhtserof.tistory.com

 

enum Fruit {
    case apple, orange, banana
}

let myfavoriteFruit: Fruit = Fruit.apple

switch myfavoriteFruit {
case .apple:
    print("๋‚ด๊ฐ€ ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ๊ณผ์ผ์€ ์‚ฌ๊ณผ์ด๋‹ค.")
case .orange:
    print("๋‚ด๊ฐ€ ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ๊ณผ์ผ์€ ์˜ค๋ Œ์ง€์ด๋‹ค.")
case .banana:
    print("๋‚ด๊ฐ€ ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ๊ณผ์ผ์€ ๋ฐ”๋‚˜๋‚˜์ด๋‹ค.")
}

 

 

 

์—ด๊ฑฐํ˜•์— case๊ฐ€ ์ถ”๊ฐ€๋  ๊ฒฝ์šฐ ํ•ด๋‹น case๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ฒฝ๊ณ ๋ฅผ ๋‚ด์–ด์ค„ switch ๊ตฌ๋ฌธ

enum Fruit {
    case apple, orange, banana
}

let myfavoriteFruit: Fruit = Fruit.apple

switch myfavoriteFruit {
case .apple:
    print("๋‚ด๊ฐ€ ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ๊ณผ์ผ์€ ์‚ฌ๊ณผ์ด๋‹ค.")
case .orange:
    print("๋‚ด๊ฐ€ ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ๊ณผ์ผ์€ ์˜ค๋ Œ์ง€์ด๋‹ค.")
case .banana:
    print("๋‚ด๊ฐ€ ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ๊ณผ์ผ์€ ๋ฐ”๋‚˜๋‚˜์ด๋‹ค.")
@unknown case _:
	print("๋ฌด์Šจ ๊ณผ์ผ์„ ์ข‹์•„ํ•˜๋‚˜์š”?")
}

 

 

 

 

 

 

 

 

 

 

 

 

๊ณต๋ถ€ ์ž๋ฃŒ

์•ผ๊ณฐ - ์Šค์œ„ํ”„ํŠธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ 5ํŒ (SWIFT5)
728x90