https://developer-eddy403.tistory.com/16
[iOS/Swift] 흐름 제어 구문(1) - 반복문, 조건문
프로그래밍 과정에서 작성하는 소스 코드를 '구문'이라고 한다. '구문'에는 크게 단순 구문, 흐름 제어 구문으로 구분되며, 그 둘에 대한 설명은 아래와 같다. 단순 구문: 식, 값 표현, 각종 객체
developer-eddy403.tistory.com
1. 반복문
(1) for ~ in 구문 기본 규칙 : 일정 횟수만큼 특정 구문 반복.
for <루프 상수> in <순회 대상> {
<실행할 구문>
}
//예시
for row in 1...5 {
print(row)
}
//출력결과
1
2
3
4
5
//순회대상: 순번을 가지는 집단 자료형 or 범위를 가지는 데이터
//순회대상으로 사용할 수 있는 데이터 타입: 배열(Array), 딕셔너리(Dictionary), 집합(Set), 범위 데이터, 문자열(String)
<꼼꼼한 재은씨의 스위프트: 문법편>에서는 이와 같은 예시를 들고 있다.
for반복문은 권총의 장전구조와 비슷하며, 탄창이 <순회대상>, 약실로 이동한 탄환이 <루프 상수>, 탄의 발사가 중괄호{} 안에 있는 <실행할 구문>과 유사하다는 설명을 한다.
위에서 제시한 <루프상수> row는 임의의 변수이므로 다른 임의의 상수명으로 변경해도 상관없다.
단, 상수이기에 직접적인 갑 입력이 불가하고 정의된 루프 상수는 for ~ in 구문 내에서만 사용이 가능하므로, 코드블록 밖에서는 사용이 불가함에 유의하자.
for i in 1...5 {
print(i)
} //정상 코드
print(i) //오류 코드
(2) for ~ in 구문을 이용한 문자 순회방법
String(문자열) = Character(문자)들의 집합. 즉, 개별 문자가 순서를 이룬 채 연결된 하나의 문자열.
하지만 String타입은 순회 처리를 지원하지 않으므로 Characters 속성을 사용한다.
var name = "Eddy"
for char in name.characters {
pring{"제 이름의 개별 문자는 \(char)입니다."}
}
//실행 결과
제 이름의 개별 문자는 E입니다.
제 이름의 개별 문자는 d입니다.
제 이름의 개별 문자는 d입니다.
제 이름의 개별 문자는 y입니다.
루프 실행횟수는 문자열의 길이만큼이므로, 총 4회 반복된다.
(3) for <루프 상수> in <실행 구문> 에서 <루프 상수>의 생략.
let size = 5
let padChar = "0"
var keyword = "3"
for _ in 1...size {
keyword = padChar + keyword
}
print ("\(keyword)")
//실행결과
000003
//이유
keyword = padChar + keyword
keyword = "0" + "3"
keyword = "0" + "03"
keyword = "0" + "003"
keyword = "0" + "0003"
keyword = "0" + "00003"
-> "000003"
순회 대상의 반복이 아닌, 순회 대상의 크기만큼 반복하는것이 목적일 때 사용한다.
이 경우, 루프 상수가 굳이 필요하지 않기에 _(언더바)로 대체한다.
(4) for ~ in 구문의 중첩
즉, for~ in 구문 내에 for ~in 구문을 작성하는 것. (= 다중루프, 이중루프)
다중 루프는 코드 구성에 편리할 수 있지만 오히려 코드를 복잡하게 만들 수 있으니 사용에 주의하자.
for i in 1..<10 {
for j in 1..<10{
print("\(i) X \(j) = \(i * j)")
}
}
//실행결과
1 X 1 = 1
1 X 2 = 2
1 X 3 = 3
1 X 4 = 4
...
9 X 8 = 72
9 X 9 = 81
다음 내용은 while반복문으로 이어가겠습니다.
'🍎 iOS > DevNote' 카테고리의 다른 글
[iOS] UI는 왜 MainThread에서만 동작할까? (1) | 2023.02.26 |
---|---|
[Architecture] MVVM(Model-View-ViewModel)패턴이란? (1) | 2022.05.01 |
[Swift] 흐름 제어 구문(1) - 반복문, 조건문, 제어전달문 개념 (0) | 2022.04.23 |
코코아팟 설치/사용법 (0) | 2022.04.22 |
[Swift] @IBOutlet, @IBAction이란? (0) | 2022.03.30 |
댓글