728x90
if-else
어느 언어에서든지 사용하는 포맷으로 이루어져 있다.
/* 조건문 */
import Swift
let someInteger = 100
// MARK: - if-else
if someInteger < 100 {
print("100 미만")
} else if someInteger > 100 {
print("100 초과")
} else {
print("100")
} // 100
// 스위프트의 조건에는 항상 Bool 타입이 들어와야한다.
// someInteger는 Bool 타입이 아닌 Int 타입이기 때문에
// 컴파일 오류가 발생한다.
차이점이라면, 괄호를 쳐 주지 않아도 가능하다라는 점과, 중괄호가 꼭 있어야 한다라는 점이다. 그래서 한줄 조건문이 불가능하다.
그리고 조건에는 항상 Bool 타입이 들어와야 한다. 위 코드의 someInteger는 Int 타입이기 때문에 조건문에 someInteger하나만 있을 경우 컴파일 오류가 발생할 것이다.
Switch
// 범위 연산자를 활용하면 더욱 쉽고 유용하다.
switch someInteger {
case 0:
print("zero")
case 1..<100: // .. 이면 1이상100미만이라는뜻
print("1~99")
case 100:
print("100")
case 101...Int.max: // ... 이면 101이상 max 이하 (max까지 포함되는 것)
print("over 100")
default:
print("unknown")
}
// 정수 외의 대부분의 기본 타입을 사용할 수 있다.
switch "ITlearning" {
case "jake":
print("jake")
case "mina":
print("mina")
case "ITlearning":
print("ITlearning")
default:
print("unknown")
}
// case 구문에 break를 따로 걸지 않아도 기본적으로 걸어준다.
// 만일 break를 쓰지 않은 것처럼 하고 싶을 경우엔 fallthrough를 사용하면 된다.
switch 는 범위 연산자를 사용하면 더욱 유용하다.
범위 연산자란 코드 중간에 .. 과 ... 이 존재하는 것을 확인할 수 있다.
..은 a이상 b 미만이라는 뜻이고, ...은 a이상 b이하 (b까지 포함되는 것)이다.
그리고 정수 외에 대부분의 기본 타입은 사용이 가능하다.
보통 C++의 경우 case 구문을 사용했을 때 break를 걸어 원하지 않는 구문으로 들어가는 것을 막아주곤 하는데, 스위프트는 따로 걸지 않아도 기본적으로 걸어준다. 만약 이게 싫다면 fallthrough를 사용하여 break가 없는 것 처럼 사용이 가능하다.
728x90
댓글