본문 바로가기
iOS Swift/문법

[Swift] Loop Statements (Range Operators, for-in Loop)

by 야고이 2024. 3. 14.
728x90

240314
Range Operators 범위 연산자

강의

lowerBound <= upperBound

항상 upperBound 가 큰 숫자여야 한다

//Closed Range Operator
1...10

//내림차순의 범위
//(10...1).reversed()

//Half-open Range Operator
1..<10 //upperBound 는 포함되지 않는다

//범위 확인 하는 코드
let range = ...5
range.contains(5) //true

 


for-in Loop

강의

//Hello 열번 출력
print("Hello")
print("Hello")
print("Hello")
print("Hello")
print("Hello")
print("Hello")
print("Hello")
print("Hello")
print("Hello")
print("Hello")

같은 코드를 반복 할 때 한줄씩 쓰는 방법도 있지만 100줄 1000줄을 다 작성 할 순 없다 

그래서 사용하는게 반복문 aka. for 문

for index in 1...10 { // 루프상수의 타입은 범위 표현식에 있는 타입과 같다
    print("hello \(index)")
}

for문(루프문)을 사용하니 세줄만에 끝남
범위가 1...10로 정수 이므로 루프상수 index 도 정수형이다

루프 상수의 타입은 정할 수 없고 범위 표현식에 있는 타입에 따라간다

//예제) 2의 거듭제곱을 구하는 코드

//1. 상수에 지수를 저장
let power = 10
//2. 변수를 만들어서 여기에 결과를 누적함
var result = 1

for _ in 1...power { // 3.루프상수는 생략, 1부터 지수에 저장된 범위까지 반복
    result *= 2
    print(result)
}

Q: 상수에 지수를 저장 하는 이유?

A: 값을 변경 하기 수월하기 때문

 

Q: 변수에다가 결과를 누적하는 이유?

A: 결과 값을 담아줄 공간이 필요하기 때문

for 문에 들어가는건 루프'상수'  이기 때문에 값을 변동할 수 없다

그래서 변수에다가 결과 값을 담아야함

안되는지 해보는 나,,,

result2 를 선언 해줘야 계산을 하지,,, result2 가 뭔지 컴은 몰라,,

 

Q: 루프 상수는 어디다가 써?

//예제) 1에서부터 10까지 합을 출력
var sum = 0
for num in 1...10 {
    sum += num // 같은 코드: sum = sum + num 
}

print(sum)

 

var result2 = 1
for i in 1...10 { //범위(1...10) 의 i 번째
    result2 = result2 * 2
    // 첫번째 값: 2 = 1(기존에 담겨 있던 값: 1) * 2 //오른쪽의 결과 값을 왼쪽에 담음
    // 두번째 값: 4 = 2(첫번째 결과값: 2) * 2
    
    print(result2, "순서임\(i)")
}

 

나 개발해도 되는걸까,,


2씩 증가하는 함수 Stride

to 는 해당 숫자를 포함 하지 않음. 0,2,4,6,8 까지 출력
through 는 0,2,4,6,8,10 까지 출력

//예제2) 홀수의 합만 구하는 코드
var n = 0
for num in stride(from: 1, to: 10, by: 2) {
    n += num //n = n + num
    print("홀수 합계 \(n)")
}

//예제3 구구단
for i in 2...9 {
    for j in 1...9 {
        print("\(i) * \(j) = \(i * j)")
    }
}

728x90

댓글