본문 바로가기

스위프트

스위프트 튜토리얼(3) - if 문

스위프트 튜토리얼(3) - if문

youtu.be/Ulp1Kimblg0?t=1343

위의 영상의 if문 파트를 바탕으로 작성한 포스팅이다.

 

if문을 배워보자. 프로그래밍에서 if문은 매우 중요하다. if문은 다른 말로 조건문이라고 하는데  결국에는 조건에 따라서 해야 할 것을 정하는 게 프로그래밍이지 싶다.

 

다시 xcode의 플레이그라운드를 실행시켜보자.

 

if문은 다음과 같은 구조로 되어있다.

if condition {
	some code
}

 

 

프로그래밍 공부를 할 때는 예시를 보는 것이 가장 이해가 잘 간다. 가장 간단한 if문을 작성해보겠다.

let a = 1

if a < 4 {
	print("only if a is less than 4")
}

위의 코드를 설명하면

a 가 4보다 작을 때 "only if a is less than 4"라는 문자열을 출력해라

이다. 

if의 옆에 조건을 적고, 그 옆에 중괄호({, })를 삽입한다. 중괄호 안에는 조건에 맞을 경우 실행될 코드를 넣는다.

 

위 코드를 실행한다면 "only if a is less than 4"라를 텍스트가 출력될 것이다.

 

좀 더 다양한 조건을 주고 싶다라면 다음과 같이 작성이 가능하다.

if condition1 {
	some code
}
else if condition2 {
	some code
}

위 코드를 설명해보자면

condition1에 맞는 조건이라면 condition1의 중괄호 안에 있는 내용이 실행될 것이다.

condition1에 조건이 맞지 않고 condition2에 조건이 맞다면 condition2의 중괄호 안에 있는 내용이 실행될 것이다.

 

ㅇ예시를 보도록 하자

let a = 7

if a < 4 {
	print("only if a is less than 4")
}
else if a < 8 {
	print("only if a is less than 8")
}

위의 코드는 "only if a is less than 8"이라는 텍스트를 출력할 것이다.

만약 a가 1이라면 "only if a is less than 4"라는 텍스트를 출력할 것이다.

 

else if 구문은 원하는 대로 추가할 수 있다.

let a = 7

if a < 4 {
	print("only if a is less than 4")
}
else if a < 8 {
	print("only if a is less than 8")
}else if a < 10 {
	print("only if a is less than 10")
}

if문을 쓸 때 조건 검사를 위에서 아래로 하는데 한 조건이라도 맞아떨어지는 게 있다면 조건에 맞는 코드를 실행하고 그 아래 코드는 모두 무시한다.

 

지금까지 if, else if까지 살펴보았는데 마지막으로 else구문도 있다. 이 else구문은 위의 조건의 모두 안 맞을 때 실행되는 구문이다,

형태는 다음과 같다.

if condition1 {
	some code
}
else if condition2 {
	some code
}else{
	some code
}

예시는 다음과 같다.

 

let a = 10

if a < 4 {
	print("only if a is less than 4")
}
else if a < 8 {
	print("only if a is less than 8")
}else if a < 10 {
	print("only if a is less than 10")
}else{
	print("nothing was true")
}

 

a는 10이기 때문에 조건을 모두 만족시키지 못하고 마지막 else구문에 있는 "nothing was true" 텍스트만 출력할 것이다.

 

참고로 지금까지 사용한 부등호는 크고 작음을 확인하는 <, >만  사용했는데

같음을 비교할 때는 부등호로 =이 아닌 ==을 사용한다. =을 하나만 사용할 때는 값을 할당할 때 만임을 알아두자.

 

AND와 OR

조건문 할 때 자주 쓰인다. 예시로 바로 보자.

let a = 1
let b = 10

if a < 4 && b < 4 {
	print("branch 1")
}

&&는 and를 의미하며 양쪽에 있는 두 조건을 만족시킬 때 true가 된다.

위의 예시에서 a < 4는 true이나 b < 4는 false라 결국 false로 되어 조건문 중괄호 안에 있는 내용은 실행이 되지 않는다.

만약에 b가 1이면  b < 4도 true가 되어 중괄호 안에 있는 내용이 실행되었을 것이다.

 

다른 예시를 보도록 하자.

let a = 1
let b = 10

if a < 4 || b < 4 {
	print("branch 1")
}

 

||은 OR을 의미하며 양쪽에 있는 조건 중 하나라도 만족시키면 true로 인정한다.

위 예시에서는 b <4 가 false라고 하더라도 a < 4가 true이기 때문에 결국 true가 되어 "branch 1"을 출력한다.

||, &&는 중복해서 사용도 가능하다. 다음 예시를 보도록 하자.

let a = 10
let b = 1
let c = 3

if ( a < 4 || b < 4) && c == 3{
	print("branch 1")
}

위의 조건문을 따져보자.

a < 4 => false

b < 4 => true

a < 4 || b < 4 => true

c == 3 => true

(false || true) && true => true && true => true

 

true가 되어 조건문을 만족시킴을 알 수 있다.

 

다른 예문을 하나 더 보도록 하자.

let a = 10
let b = 1
let c = 3

if a < 4 || (b < 4 && c == 3) {
	print("branch 1")
}

a < 4 => false

b < 4 => true

c == 3 => true

b < 4 && c ==3 => true

false || (true && true ) => false || true => true

true가 되어 조건문을 만족시킴을 알 수 있다.

 

위의 예문에서 같다는 부등호 표시를 할 때 == 을 사용했다. 그렇다면 같지 않다는 어떻게 표시할까?

!= 를 사용하면 된다. 예문을 다시 보자.

let a = 10
let b = 1
let c = 3

if (a < 4 || b < 4) && c != 3 {
	print("branch 1")
}

c != 3 은 c가 3이랑 같지 않을 때 true가 된다. c는 3이기 때문에 false가 되고 조건문은 실행되지 않는다.

 

!는 또 다른 활용법이 있다. true값이나 false값을 반대로 바꾸어 줄 수 있다. 다음 예시를 보자.

let a = 10
let b = 1

if !(a == 10 && b == 1){
	print("branch 3")
}

위 구문에서 a == 10 && b ==1 은 true이지만 앞에 !가 붙어져 있기 때문에 false가 된다.

 

처음 조건문을 다뤄 사람이라면 30분 정도 조건문을 좀 가지고 이것저것 해보는 것을 추천한다.