본문 바로가기

Swift

[Swift] Swift 기본 문법(if, switch, while, for, for in)

반응형

Swift 기본 문법은 C, JAVA와 같은 기존 언어들과 상당한 비슷하기에 기존 언어를 공부했었던 사람이라면 한번 훑어보더라도 이해하는데 큰 문제는 없을 것이다.


1. if문

if 조건1{

  명령1

}

else if 조건2{

  명령2

}

...

else{

  명령3

}

if문의 경우 위와 같은 형태로 "조건 -> 명령" 순으로 나아가며 조건을 여러가지로 하고 싶을 경우 else if문장을 사용하여 조건을 추가할 수 있다. 조건 1이 참이 아닐 경우 조건 2로 넘어가고 모든 조건이 참이 아닐경우 마지막 else문으로넘어가 명령3이 실행이 된다. 이전에 조건이 참이 되었을때 제어 흐름은 if문을 빠져나온다. 아래 간단한 예제를 확인해보자.

score의 값은 89이고 첫 번째 조건과 비교했을때 거짓이 되고 두번째 조건이 되었을때 참이 된다. 그렇기에 사이드바에 출력된 값을 보면 두번째 문장이 출력돼있는 것을 확인할 수 있다.


2. switch문

switch 식{

  case "값1":

    명령1

  case "값2":

    명령2

   ...

  default:

    명령3

}

if문을 대신할 수 있는 명령문이 바로 switch문이다. switch문의 기본 문법은 위와 같으며 if문을 대신하여 switch문을 사용하는 이유는 한 변수에 대해서 여러번의 비교를 할 때 if문 보다 가독성이 높다고 할 수 있다. swift에서 switch문의 특징이라고 한다면 다른 언어들과는 다르게 break문을 사용하지 않는다는 것이다.

switch문은 식 값과 case의 값들과 비교 후 해당 값에 대한 명령을 실행한다. 아래 간단한 예제를 보자

grade의 변수의 값은 D로 switch문 내에 맞는 조건이 없다. 맞는 조건이 없기에 default문의 명령을 실행하게 된다.


3. while문

while 조건{

  명령

  조건증감

}

while문의 경우 루프를 생성할 수 있는 문장으로 조건식이 참일경우 반복적으로 실행되는 코드 블록이다. 기본 문법은 위와 같으며 조건 증감을 하지 않을 경우 무한루프에 빠질 수 있으니 주위하도록 하자.

위 사진은 while문의 간단한 예제로 counter의 값을 1씩 증가시키며 반복문을 실행하는 문장이다. 왼쪽 Console Output의 경우 'View->Assistant Editor->Show Assistant Editor'를 통해 Console Output을 띄우고 결과를 확인 할 수 있다.


4. for문

for 값; 조건; 증감{

  명령

}

for문의 기본 문법의 위와 같으며 아마 프로그래밍을 하면서 가장 많이 쓰일 것으로 생각한다. 값은 검사할 값을 지정해주는 것이며 조건은 지정된 값의 참, 거짓을 분류하는 조건이다. 증금의 경우 값을 증가 혹은 감소시켜 반복 블록을 만들 수 있다.

위 예제를 보면 값에 i=0이라는 값을 입력하여 i값을 입력하였다. 두번째 i <=10은 조건이며 i값이 10보다 작을때 까지 반복하겠다는 의미이다. 마지막으로 i++는 i값을 1씩 증가시켜 반복 블록을 만들겠다는 의미이다.


4. for in문

for 값 in 범위

{

  명령

}

for in문의 간단한 문법은 위와 같으며 for문 보다 간단한게 표현할 수 있으며 보통 배열과 많이 사용된다. 아래 예제를 확인해 보자.

첫번째 for in문을 보면 1부터 10까지 i를 출력하는 블록이다. 범위로는 1...10으로 지정해 주었으며 이를 고정범위라 한다.

두번째 블록의 범위는 1..<으로 지정하였는데 이를 개방 범위라 한다.

세번째 블록은 for in문과 배열을 함께 사용한 예제이다.


반응형

'Swift' 카테고리의 다른 글

[Swift] 함수 정의와 호출  (3) 2015.08.06
[Swift] 배열과 딕셔너리  (0) 2015.08.06
[Swift] Swift에서의 변수와 상수  (1) 2015.08.03
[Swift] Swift 시작하기  (0) 2015.08.02