For문
//Syntax
for loopConstant in Range {
statements
}
for문은 반복문 중 하나이다.
loopConstant로 변수나 상수의 이름이 온다. (wildCaed Pattern으로 생략할 수도 있다.
그리고 in 뒤의 Range에서 반복할 범위를 작성한다.
그럼 statements의 코드가 위에서 정한 범위만큼 반복된다.
간단하니 예시를 바로 보자.
for num in 1 ... 10 {
print(num)
} //num이라는 변수명. 1부터 10까지 출력
for index in 0 ... 10 {
print("Hello")
} //index라는 변수명. 10번 반복. "Hello" 10번 출력.
func testLoop() {
for _ in 1 ... 10 { //wildCard Pattern으로 생략함.
print("잘 실행되고 있나요?")
}
}
testLoop()
let power = 10
var result = 1
for _ in 1 ... power { //wildCard Pattern으로 생략함.
result *= 2
}
result
var sum = 0
for num in 1 ... 10 {
sum += num //sum에 sum과 num을 더한 값을 저장한다. 1부터 10까지 더한 후 저장.
}
sum
stride 문법
for num in stride(from: 0, to: 10, by: 2) {
print(num)
} // 0부터 10까지 2씩 증가하는 코드.
from - lowerBound
to - upperBound
by - 증가시킬 값. (2면 2씩 증가시킨다.)
from, to, by의 구성에서는 Half-open Range Operator처럼 마지막 upperBound는 포함하지 않는다.
하지만 upperBound를 범위에 포함시키고 싶다면, to를 through로 바꾸면 된다.
응용
// 짝수만 모아서 값을 더하고 저장하는 코드
var baechu = 0
for mungchi in stride(from: 0, through: 10, by: 2) {
print(mungchi)
baechu += mungchi
}
baechu
//홀수만 모아서 값을 더하고 저장하는 코드
var pig = 0
for soondol in stride(from: 1, through: 9, by: 2) {
print(soondol)
pig += soondol
}
pig
While문
- while문은 조건이 true인동안 코드블록을 반복해서 실행시킨다.
- 조건이 false가 되는 순간 반복을 종료한다.
while 조건 {
// 반복실행할 코드
}
var a = 0
while a < 10 {
a += 1
print(a)
}
위의 코드 예시를 풀어서 설명해보자면, a라는 변수를 만들고 0이라는 값을 저장한다.
그리고 a에 1씩 더하고 출력한다.
10까지 출력하고 멈추게 된다.
흐름 제어
Continue
for number in 1...5 {
if number % 2 == 0 {
continue
}
print(number)
}
var number = 1
while number < 10 {
numm += 1
if number % 2 == 1 {
continue
}
print(number)
}
반복문 안에서 현재 반복을 건너뛰고 다음 반복으로 넘어갈 때 사용한다.
즉 위의 코드를 보면, if문의 조건이 true일 경우 continue를 썼기때문에,
print(number)를 실행시키지 않고 바로 다시 반복문으로 넘어간다.
Break
- 반복문이나 Switch에서 즉시 종료하고 코드블록을 빠져나올 때 사용된다.
for age in 15...99 {
print(age)
if age >= 20 {
break
}
}
// 15부터 99까지 반복해서 출력함.
// 하지만 if문을 통해 20 이상일 경우 반복문 종료(break)
var age = 15
while age < 100 {
print(age)
if age >= 20 {
break
}
age += 1
}
// age라는 변수를 만들고 15라는 값을 저장함.
// age가 100미만일때까지, 아래의 조건을 실행함.
// age 출력, 그리고 if문 실행해서 true일 경우, 반복문 종료.
// false일 경우, age에 1씩 더하고, 반복문 계속 실행
for문으로 구구단을 만들어보자.
for gugudan in 2 ... 9 { //2단부터 9단까지
for numbers in 1 ... 9 {
print("\(gugudan) * \(numbers) = \(gugudan * numbers)")
}
}
코드를 살펴보자.
첫번째 for문으로 2단부터 9단까지 반복하고,
두번째 for문에서, 1 부터 9까지 반복.
즉,
print문을 보자. 첫번째 for문과 두번째 for문을 곱하는 것을 9번 반복한다.
그럼 2 * 1 부터 2 * 9까지 곱하고 출력한다.
안쪽의 for문(numbers)이 한바퀴 끝났고, 이제 바깥의 for문(gugudan)이 다시 반복된다.
2가 끝났으니 3의 차례.
3 * 1부터 3 * 9까지.
이런식으로 작동하는 코드이다.
즉 안쪽의 for문이 끝나야 바깥의 for문이 다시 실행되는 구조인 것이다.
'Language > Swift' 카테고리의 다른 글
Swift 기본 문법 - Double 타입에서 나머지 구하기(TruncastingRemainder) (0) | 2024.10.29 |
---|---|
Swift 기본 문법 - Tuple (0) | 2024.10.28 |
Swift 기본 문법 - Range Operator(범위 연산자) (0) | 2024.10.19 |
Swfit 기본 문법 - 조건문 switch문 (0) | 2024.10.19 |
Swift 기본 문법 - 조건문 guard문 (0) | 2024.10.15 |
살아남는 iOS 개발자가 되기 위해 끊임없이 노력하고 있습니다.