반응형
프로그래밍의 기본 원리
- 순차
- 조건
- 반복
오늘은 순차와 조건에 대해 알아보겠다.
순차 ⬇️
코드는 코드가 쓰여진 차례대로 실행된다.
그래서 코드를 작성할때 순서는 아주 중요하다.
print("1")
print("2")
print("3")
//1
//2
//3
조건 ⭕️❌
조건에 따라 동작을 할지 말지를 결정한다.
- if문
- switch문
if문
참과 거짓을 통해 실행된다.
if문 뒤에 조건을 걸고 참일 경우 {} 안에 코드를 실행한다.
if 참과 거짓을 판단할 수있는 조건 {
참일 경우 실행할 코드
}
//if 문 안에 코드는 내부적 코드의 의미로 통상 4칸 들여쓰기
if문 사용시 알아둘 것
- if문에서는 구조와 순서가 중요하다.
- 조건을 , (comma) / && (and) / || (or)로 연결해 사용 가능하다.
- else if를 통해 중첩해서 사용 가능하다.
그럼 if문은 언제 사용할까?
-> 참과 거짓을 통해 코드를 실행시키고 싶을 때 사용
switch문
여러 가지 조건에 따라 다르게 실행하기를 원할 때 사용
switch choice { // 비교할 값
case "가위": // choice에 담긴 값이 "가위"일 경우 "가위 입니다."를 출력
print("가위 입니다.")
case "바위": // choice에 담긴 값이 "바위"일 경우 "버위 입니다."를 출력
print("바위 입니다.")
case "보": // choice에 담긴 값이 "보"일 경우 "보 입니다."를 출력
print("보 입니다.")
default:
break // 이외에 경우에서는 default를 통해 정리
}
switch문 사용 시 알아둘 것
- 스위치문에서 케이스의 , (comma)는 또는(and)의 의미로 하나의 케이스에 여러 매칭값을 넣을 수 있다.
- switch 문은 (비교하고 있는) 값의 가능한 모든 경우의 수를 반드시 다루어야 한다.
(exhaustive: 하나도 빠뜨리는 것 없이 철저한) - 실행하지 않으려면, break를 반드시 입력해야 한다. (switch문에서만)
- fallthreough 키워드 사용이 가능하다.
var num1 = 9
switch num1 {
case ..<10: //케이스 값이 성립이 되면 다음 case는 매칭값과 상관없이 무조건 실행
print("1")
fallthrough
case 10:
print("2")
fallthrough
default:
print("3")
}
//1
//2
//3
switch문의 패턴매칭
switch문에서 부등식 대신 범위연산자를 써야 한다.
패턴매칭 연산자
스위치문에 :(colon)에는 사실 패턴매칭 연산자가 숨겨져 있다.
var weight:Int = 65
switch weight {
case 50...60:
print("저체중입니다.")
case 60...70: //60...70 ~= weight ->true이므로 실행
print("정상 체중입니다.")//오른쪽에 있는 변수가 왼쪽 범위에 포함되면 참 아니면 거짓인지 알려주는 연산자
case 70...80:
print("과체중입니다.")
default:
break
}
switch문 활용
- switch문과 벨류바인딩
- switch문과 where절
switch문과 벨류바인딩
바인딩이란?
다른 변수/상수로 값을 할당하는 것
var a = 10
var b = a //a의 값이 b에 할당
switch문에서의 활용
var num = 20
switch num {
case let a: //let a = num ->이게 switch문에서 바인딩
print("숫자: \(a)")
default:
break
}
switch문과 where절
switch문에서 조건을 한번 더 확인할 때 사용
where절은 Bool 타입으로 조건을 확인하고 true나 false를 리턴한다.
where절 대부분은 밸류바인딩 패턴과 함께 사용 가능하다.
num = 7
switch num {
case let x where x % 2 == 0: // let x = num 이후 where절을 만족시 true
print("짝수 숫자: \(x)")
case let x where x % 2 != 0:
print("홀수 숫자: \(x)")
default:
break
}
반응형
'프로그래밍 > Swift' 카테고리의 다른 글
스위프트 [Swift] 옵셔널(Optional) 정리 (0) | 2023.07.30 |
---|