Seul Lee

Mathpresso 서버 개발자

Navigation
 » Home
 » Github
 » XML Feed

Swift 02, 제어구문

08 Feb 2017 » others

환경은 macOS Sierra, Swift 3.0

Swift 3.0을 공부하면서 정리한 내용


2. 제어 구문

Swift에는 if, while, do-while 등 C와 동일하지만 모든 절을 {}로 감싸야 한다. 또한 추가적으로 for-in문이 도입되었다.


2.1 if문

if num >= 100 { # num이 100 이상이면 num에 5 더한다.
    num += 5
}
else if num >= 50 { # num이 50 이상이면 num에 2 곱한다.
    num *= 2
}
else { #  조건 모두 아니라면, num에 3 곱한다.
    num *= 3
}

print("num=\(num)")

각 조건식을 ()로 감쌀 필요가 없다. 조건식의 결과 값은 항상 Bool형이어야 한다.


2.2 while, do-while 문

별 다를게 없으므로 예제 코드만

# 피보나치... 
var a = 1, b = 2
var i = 1, temp = 0

while i <= 20 { # i가 20  때까지 수행
    temp = a 
    a = b
    b = b + temp
    i += 1
}

print("a=\(a), b=\(b)")

var a = 1, b = 2
var i = 21, temp = 0
do {
    temp = a 
    a = b
    b = b + temp 
    i += 1

} while i <= 20 

while문의 경우 조건을 먼저 검사한 이후에 코드를 실행하지만, do-while문은 한번 실행한 이후에 조건을 검사한다. 따라서 do-while은 무조건 한번은 실행된다.


2.3 print문

Swift 2.0 이전에는 print와 println을 구분하여 사용했지만, 2.0 이후(지금은 3.0) print만을 사용한다. print문 내부에 \를 활용하여 값을 출력할 수 있다.(나중에 다시 정리)


2.4 for-in문

Swift 2.0에서 3.0으로 업그레이드 되면서 바뀐 것 중 하나가 C-Style for문의 제거이다. 기존에는 C-Style for문과 for-in 모두를 지원하였으나, 현재에는 for-in문만 사용한다.

# 피보나치... while문에서 수정
var a = 1, b = 2
var temp = 0

for i in 0...20 { # i가 20  때까지 수행
    temp = a 
    a = b
    b = b + temp
}

print("a=\(a), b=\(b)")

0…20은 0 <= i <= 20</br> 0..<20은 0 <= i < 20을 뜻한다.


2.5 switch문

Swift의 switch문은 다른 언어와 다른 특징들이 존재한다. 먼저, break문이 필요하지 않다는 것이다. 기존 언어의 switch문에서는 break문이 없을 시 뒤의 case까지 실행되었지만, Swift에서는 특정 조건에 만족하여 case를 실행한 이후에는 자동으로 종료된다. 두 번째 특징은 반드시 일치하는 조건이 존재하여야한다는 것이다. 일치하는 조건이 없을 시에는 에러문를 분출하기때문에 default문을 구현하는 것이 좋다. 마지막으로 case 조건식을 조금 더 자유롭게 구현할 수 있다는 점이다.

switch num { # num 대신 식도 가능
    case 0:
        # 실행할 구문
    case 1:
        # 실행할 구문
    case 2:
        # 실행할 구문
    default: 
        # 실행할 구문
}


2.6 break, continue

break는 일반적으로 루프문을 빠져나올 때 사용하고 continue는 뒤의 부분은 건너뛰고 처음의 조건 검사부분으로 돌아갈 때 사용한다.

Swift에서는 break, continue에 레이블을 지정하여 특정 루프를 건너뛰거나 빠져나올 수 있다.



Related Posts