본문 바로가기
FRONT-END/iOS

자바스크립트와 비교하며 Swift 공부하기 - 조건문편

by 랄라J 2023. 7. 4.

if  - else 문

// JavaScript
if (number < 3) {
	console.log("3보다 작음")
} else {
	console.log("3보다 크거나 같음")
}
// Swift
if number < 3 {
	print("3보다 작음")
} else {
	print("3보다 크거나 같음")
}

 

switch 문

  javascript swift
switch문 switch (food) {
  case "떡볶이":
    console.log("떡볶이 주문");
    break;
  default:
    break;
}
switch food {
  case "떡볶이":
    print("떡볶이 주문")
  default:
    print("없음")
}
여러 조건의 case switch (food) {
  case "떡볶이1":
  case "떡볶이2":
    console.log("떡볶이 주문");
    break;
  default:
    break;
}
switch food {
  case "떡볶이1", "떡볶이2":
    print("떡볶이 주문")
  default:
    print("없음")
}
fallthrough
(매칭된 값에 대한 고려없이
무조건 다음블럭 실행)
위 case "떡볶이1", "떡볶이2" 동일한 실행 코드가 이에 해당 switch food {
  case "떡볶이":
    print("떡볶이 주문")
    fallthough
  case "떡볶이":
    print("떡볶이 주문")
  default:
    print("없음")
}

 

Swift의 switch 문에서의 바인딩

var num = 3

switch num {
    case let a:
    	print("숫자 \(a)")
    default:
    	break
}
  • where 키워드는 조건을 확인하는 키워드인데 switch에 응용 시 함께 사용됨
    case에 조건을 확인하고 싶을때는 아래처럼 바인딩을 해서 사용해야함
switch num {
    case let n where n <= 5:
        print("5이하 숫자 \(n)")
    default:
    	print("그 외")
}

 

Swift만의 guard문

  • if문은 여러개의 조건이 있을 때 코드의 가독성이 문제가 되는데 이를 극복하고자 나온 문법
  • if문에서 else문이 먼저 등장하는 것이라고 생각하면 쉬움
    • 실무에서 early exit을 위해 if(!false조건) return을 사용하는 경우가 많은데, 그때 사용을 위한 것
// 조건 : name을 5글자 이상 입력해야하는 조건 체크일 경우

// if문
func checkVerified(name: String) -> Bool {
    if name.count < 5 {
    	return false
    } else {
        return true
    }
}

// guard문
func checkVerified(name: String) -> Bool {
    guard name.count >= 5 else {
    	return false
    }
    return true
}
728x90

댓글