본문 바로가기

14일 만에 아이폰 앱 만들기

14일 만에 아이폰 앱 만들기(12) - If Statements

14일 만에 아이폰 앱 만들기(12) - If Statements

 

이제 if문을 배워보고 카드게임에 적용해보도록 하자.

 

우선 플레이그라운드를 켜고 다음과 같이 입력하자.

let a = 1
let b = 2
let c = 3
let d = "hello"
let e = false
let f= true
let g = true

 

 

그리고 if문을 작성해보도록 하겠다.

if e {
  print("Hello World")
}

e가 들어가는 곳에 상태(조건)를 적으면 되는데 현재 상태는 e의 값인 false라고 보면 된다. 따라서 if문의 조건의 false이고 중괄호 안의 구문은 실행되지 않는다. 실행하면 아무것도 뜨지 않는 것을 볼 수 있을 것이다.

 

하지만 e를 f로 변경해주면 구문이 출력되는 것을 볼 수 있을 것이다. f의 값은 true이니까.

 

다음으로 &&에 대해서 알아보자. &&가 뜻하는 것은 "and"이다. 우리 말로는 "그리고"라고 할 수 있겠다.

f &&g 의 값은 true라고 할 수 있다. f && e의 값은 false라고 할 수 있다. 두 값 중 하나라도 false이면 false가 된다.

 

다음으로 ||에 대해서 알아보자. ||가 뜻하는 것은 "or"이다. 우리 말로는 "또는"이라고 할 수 있겠다. 참고로 "|"는 키보드 상의 엔터 위쪽에 있으며 shift를 누르고 눌러주어야 한다.

 

f || g 의 값은 true이다. f || e의 값은 true이다. g || e의 값은 true이다. 두 값 중 하나라도 true이면 true가 된다.

 

&&와 ||은 같이 사용할 수도 있다. f || e && g 의 값은 무엇일까. 일단 답부터 말하자면 true이다. 하지만 헷갈릴 수 있다.

f || e를 생각하는 게 먼저인지 e && g를 생각하는 것이 먼저인지. 가독성을 생각한다면 괄호를 추가해주는 것이 좋다. f || g를 연산하고 싶다면 (f || e) &&g, e&&g를 먼저 연산하고 싶다면 f || (e && g)라고 하면 된다.

 

이제 else if 구문에 대해서 살펴보자. 다음 코드를 보자.

if (f || e) && g }
  print("Hello World")
}
else if e{

}
else if g{

}

if 구문 아래로 else if 구문 두 개가 나열되어있다. 시작하는 if문에서 조건이 true가 되지 않는다면 if 구문 다음에 있는 else if 구문으로 넘어간다. 이 else if 구문에도 조건이 true가 되지 않으면 다음 else if 구문으로 넘어간다. 위에서 아래로 내려가면서 조건에 맞는 구문을 찾아간다고 생각하면 된다. 조건에 맞는 구문을 발견하면 바로 그 조건에 맞는 코드를 실행하고, 나머지 코드는 무시해버린다. 위 예시 코드에서 조건에 모두 맞지 않는다면 아무 코드도 실행하지 않게 된다. 하지만 조건에 모두 맞지 않는다고 하더라도 실행되게 만들 수 있다. 다음 예시를 보자.

 

if (f || e) && g }
  print("Hello World")
}
else if e{

}
else if g{

}
else{

}

제일 하단에 else 구문을 추가하였다. 이 else 구문에 해당하는 코드는 위의 모든 조건에 맞지 않을 때 실행된다.

 

true, false값은 부등호를 통해서 만들어질 수 있다. 

 

숫자 크거나 작거나 같은지 비교 

1 >4 : false, 10 > 1 : true, 100 >= 100 : true, 114 <= 30 : false,100 == 100 : true

 

문자열 비교

"hello" == "hello" : true

"hello" > "world" : true (h와 w의 알파벳 순서를 비교, 뒤에 있을수록 크다)

 

따라서 다음과 같이 조건문을 적는 것도 가능하다.

if (f == 10  || b < 4) && (a == 0){
	print("Hello World")
}

 

느낌표(!)를 활용할 수도 있는데 느낌표는 boolean값을 반대로 바꿔준다.

!false  : true, !true : false

 

== 는 같냐고 묻는 조건인데 != 는 같지 않냐고 묻는 조건이다.

ex. 10 == 10 : true, 10 != 10 : false, 10 != 20 : true

 

자 이제 카드 게임으로 돌아가자. 카드게임 프로젝트를 불러오자. 그리고 카드의 숫자를 비교해서 이긴 쪽에게 점수를 주는 로직을 추가해보자. 한번 스스로 해보고 아래 코드를 보는 것을 권장한다.

 

점수 비교 후 점수 올리기

 

점수가 계산되는 것을 볼 수 있다.

 

이렇게 첫 앱을 만들었다! 스스로 칭찬 좀 해주자. 끝!