728x90
안녕하세요:)
오늘은 조건문에 대해서 알아보도록 하겠습니다.
조건문은 프로그램에서 하나 또는 그 이상의 조건값에 따라 특정 구문을 실행하도록 프로그램의 흐름을 분기하는 역할을 합니다.
Swift에서 제공하는 조건문은 크게 세 가지입니다.
- if 구문
- switch 구문
- guard 구문
그럼 if 구문부터 알아보도록 할게요!
< if 구문 >
- if 구문은 하나 또는 그 이상의 조건을 평가하고 그 결과에 따라 코드 블록의 실행 여부를 결정하는 것이 if 조건문입니다.
- if 조건문은 조건의 참과 거짓을 판단하고 코드를 실행해야 합니다.
- 조건문은 반드시 Bool 타입의 true, false를 판단할 수 있는 형태의 구문이여야 합니다.
- condition이 true인 경우 코드 블록 내부의 구문이 실행됩니다.
- condition이 false인 경우 코드 블록을 빠져나가 if 블록 다음에 위치한 코드를 실행합니다.
그럼 코드를 통해서 하나하나 확인해보도록 할까요?
if condition { // condition == Boolean expr
code
}
if 조건문의 condition은 반드시 Boolean expr 이 와야 합니다.
var age = 21
if age > 20 {
print("성인!")
} // 성인!
if 블록 뒤에 else 블록을 추가할 수 있습니다.
var adult = 19
var age = 15
if age < adult {
print("당신은 미성년자!!")
} else {
print("당신은 성인")
} // "당신은 미성년자!!"
그리고 if 블록 안에 if 블록을 얼마든지 선언 가능할 수 있습니다.
확인해 볼까요?
let num = Int.random(in: 0...100)
if num.isMultiple(of: 2) {
print("2의 배수")
if num.isMultiple(of: 3) {
print("이면서 3의 배수")
}
if num.isMultiple(of: 6) {
print("이면서 6의 배수")
}
}
num에서 0부터 100까지의 랜덤 숫자를 뽑고 난 후 2,3,6의 배수를 확인하는 코드입니다.
실행할 때마다 결과가 변경돼요!!
< else if >
- else if 블록은 if 블록의 condtion이 false인 경우 실행되고 else if의 condition이 true인 경우 실행됩니다.
- else if 블록의 condition이 false인 경우 else 블록이 실행됩니다.
- else if 블록은 계속해서 추가할 수 있습니다.
- if 문안에 if 문은 얼마든지 선언 가능합니다.
- 가장 까다로운 조건이 가장 먼저 와야 합니다.
if condintion {
statement
} else if condition { // if블록의 조건이 false이면 else if 블록이 실행되고 condition을 판단합니다.
statement
} else { //else if블록의 condition이 false인 경우 실행됩니다.
statement
}
var adult = 19
var age = 15
var gender = "F"
if gender == "M" && age > adult{
print("남자, 성인입니다!")
} else if gender == "M" && age < adult {
print("남자, 미성년자입니다!")
} else if gender == "F" && age > adult {
print("여자, 성인입니다!")
} else if gender == "F" && age < adult {
print("여자 미성년자입니다!")
} else {
print("남자와 여자 어느 쪽에도 속하지 않습니다")
} // "여자 미성년자입니다!"
오늘은 if 조건문에 대해서 알아보았습니다.
도움이 되셨나요?
다음 시간에는 switch 문에 대해서 알아보도록 하겠습니다
감사합니다:)
728x90
'Swift' 카테고리의 다른 글
Conditional Statement - guard문 (0) | 2020.10.29 |
---|---|
Conditional Statement - switch문 (0) | 2020.10.25 |
Operator (0) | 2020.10.23 |
Type Inference & Annotation & Conversion (0) | 2020.10.23 |
DateType with Memory (0) | 2020.10.21 |