1. 반복문
순회대상에 대해서 동일한 코드를 반복실행.
for ~ in :
for 루프상수 in 순회대상 {
// 실행구문
}
// String Type 순회
var lang = "swift"
for c in lang.chracters {
print("개별 문자: \(c)")
}
순회 대상으로 이용가능한 데이터: Array, Dictionary, Set, 범위 데이터, String
String은 순회처리를 지원하지 않음. 순회하기 위해서는 .chracters 속성 사용.
루프 상수는 반복마다 개별 아이템을 넘겨받아 재선언됨.
루프 '상수'이기 때문에 값 대입 불가능
루프 상수는 for 블록 밖에서 사용 불가능
루프 상수를 언더바(_)로 대신 사용 가능
while:
while 조건식 {
// 실행구문
}
repeat ~ while:
repeat{
// 실행구문
}
while 조건식
do while 과 같은 방식
2. 조건문
조건에 따라 코드 실행 분기가 나뉘는 구문
if:
if 조건식{
// 실행 구문
}
else if 조건식{
// 실행구문
}
else{
// 실행구문
}
guard 문:
guard 조건식 else {
// 거짓일때 실행
}
switch 문:
switch 변수 {
case 0, 1:
fallthough
//swift는 c처럼 암시적인 Fall Through를 지원하지 않음
//case가 0, 1일때 case 2까지 넘어가서 실행
//c에서 break가 없는 상황과 비슷함
case 2:
//변수값 2 일때 실행(break 필요 없음)
default:
//일치하는 case가 없을 때 실행할 코드
}
#available 구문:
os 버전 별로 구문을 나누어서 작성해야 할 때 사용
if #available( iOS9, OSX 10.10, WatchOS 1, *) {
//마지막에 *로 끝인 걸 알려줌
// iOS9용 구문, OSX 10.10용 구문, WatchOS 1용 구문
} else{
//API를 사용하지 못 했을 때의 실패 처리
}
os 버전 별로 구문을 나누어서 작성해야 할 때 사용
3. 제어 전달문
제어흐름을 조정하여 코드가 실행되는 순서를 설정함
break, continue, fallthrough(switch 문에서 사용), return 이 있음
구문 레이블:
레이블이름 : while 조건식{
실행 구문
}
outer : for i in 1…5{
// i를 1에서 5까지 반복
inner : for j in 1…9{
//j를 1에서 9까지 반복
if(j == 3){
break outer
//outer에서 나감
}
print(“\(i) * \(j) = \(i * j)”)
}
}
c와 같은 언어에서 한 번에 반복문 여러개를 나갈 때는 보통 flag변수를 만들어서 나가게 하는데
swift에서는 루프에 레이블을 붙임으로써 인접한 반복문 뿐만 아니라 명시한 반복문 까지 나갈 수 있음
'Swift' 카테고리의 다른 글
| SwiftUI에서 UIImagePickerController 사용 (0) | 2023.05.01 |
|---|---|
| GeometryReader, Gesture, AVAudioPlayer로 진동 구현 OE - 2 (0) | 2023.05.01 |
| Watch Connectivity로 폰-워치 통신 구현 OE - 1 (0) | 2023.05.01 |
| swiftUI로 게임 만들기(떨어지는 동전 잡기) (0) | 2023.05.01 |
| Swift 기본 문법 (0) | 2023.05.01 |