조건문 = 분기문(Branch Statement)
프로그램 내에서 하나 또는 그 이상의 조건값에 따라
특정 구문을 실행하도록 프로그램의 흐름을 분기하는 역할을 함
실행방식에 따라 크게 세가지로 나눴음
1. if
2. gaurd
3. switch
이중에 if문에 대해서 알아볼거임
스타또
가장 기본적인 형태의 if문
if<조건식>{
<실행할 구문>
}
조건식에는 반드시 Bool타입의 참, 거짓을 판단할 수 있는 구문이어야 함
*스위프트는 참, 거짓을 0,1로 사용할 수 없음
그러면 미성년자를 표현하는 방법은 알았는데
성년을 표현하고 싶으면 어떻게 표현을 해야할까??
아래와 같이 if문을 연달아 사용해 보았다.
if문을 두번 사용해서 범위를 합쳤을 경우에 서로 겹치는 부분이 있을 수 있고,
합쳐서 전체 범위를 뜻할 수 없어 완벽한 여집합을 만들 수 없다.
var adult = 19
var age = 21
if age < adult{
print("삐빅 미성년자입니다")
}
if age >= adult{
print("성인입니다")
}
이러한 문제점을 만족시키기 위해 스위프트에서 if ~ else문을 제공해준다.
if ~ else
조건식이 참일때에는 A구문을, 참이 아니라면 B구문을 실행하고 싶을때
if 조건식이 참이면 if를 실행하고 참이 아니면 else구문 실행
결론은 무조건 하나는 실행하겠다는 뜻이다.
if<조건식>{
<조건이 참일때 실행할 구문>
}else{
<조건이 거짓일 때 실행할 구문>
}
따라서 if ~ else 구문을 이용하여 다음과 같이 미성년자 구분하는 코드를 만들 수 있음
var adult = 19
var age = 21
if age < adult{
print("삐빅 미성년자입니다")
}else{
print("성인입니다")
}
자 그럼 이번에는 남자미성년자, 여자 성년자, 여자 미성년자, 남자 성년자를 구분하고 싶다.
그러면 if문 안에 if문을 사용하게 되면 되지 않을까 싶다.
그래서 if구문은 중첩을 사용할 수 있다.
if구문 중첩
var adult = 19
var age = 21
var gender = "M"
if age < adult{
if gender == "M"{
print("삐빅!! 남자인 미성년자입니다")
}else{
print("삐빅!! 여자인 미성년자입니다")
}
}
if age >= adult{
if gender == "M"{
print("남자성인입니다")
}else{
print("여자성인입니다")
}
}
*하지만 3번 이상의 중첩 구문은 사용하지 않는게 좋음
(가독성을 해치고 코드사이 의존관계를 심화시킴)
만약에 해외에서 보장해주는 제3의 성을 가지신 분들은 어떻게 코드를 짜야할까??
else if 구문을 이용하여 해결가능
- 비교할 값이 많을때 사용하면 좋음
- 일치하는 조건식이 있으면 조건문을 종료함
but. if ~ if 구문은 조건식을 찾아도 모든 조건식 비교후 종료
(불필요한 리소스 낭비)
if<조건1>{
<조건1이 참일때 실행하는 구문>
}else if<조건2>{
<조건2이 참일때 실행하는 구문>
}else
<조건 1,2가 전부 만족하지 않았을 경우 실행하는 구문>
else if 문은 if조건절을 만족하지 못한 경우에 호출이 됨
때문에 자신의 조건식을 만족하는지 먼저 봐야 됨
if gender == "M"{
print("남자입니다")
}else if gender == "F{
print("여자입니다")
}else{
print("남자와 여자에 속하지 않습니다")
}
gender가 "M"이 아닌경우에만 else if 구문이 실행이 되고 F가 맞으면 코드블록이 실행되고
아니면 else구문이 실행됨
다음시간은 guard 구문....
'Swift랑 친해지기 > Swift 책보면서 정리해보기' 카테고리의 다른 글
switch 구문 - 스위프트 (0) | 2022.01.17 |
---|---|
guard 구문 - 스위프트 (0) | 2022.01.17 |
while 반복문 - 스위프트 (0) | 2022.01.17 |
for반복문 - 스위프트 (0) | 2022.01.14 |
단순구문과 흐름제어구문 (0) | 2022.01.13 |