4일차 - 21.06.11

수킴·2021년 6월 11일
0

100DaysOfSwift

목록 보기
5/37
post-thumbnail

학습키워드

  • loops
  • more loops ...

1. For loops

스위프트에서는 반복되는 코드를 처리하는 방법 중 for문을 제공합니다.

주어진 조건이 참인경우 코드를 반복적으로 실행하고 거짓이 된 경우 반복을 중단합니다.

for 키워드를 사용후 원하는 상수명을 작성 in 조건 {} 괄호안에 반복되는 코드를 작성합니다. (상수는 기존에 사용한 상수여도 관계없다)

상수를 사용하지 않는 경우 _ 와일드카드로 사용해도 무관합니다.

let albums = ["Red", "1989", "Reputation"]

for album in albums {
    print("\(album) is on Apple Music")
}
// 결과
Red is on Apple Music
1989 is on Apple Music
Reputation is on Apple Music

let testConstant = 100

for testConstant in 1...3 {
    print(testConstant)
}
// 결과 
1
2
3

2. While loops

스위프트에서는 반복되는 코드를 처리하는 방법 중 while문을 제공합니다.

while 키워드를 사용한 후 조건을 작성한 후 {} 괄호안에 반복되는 코드를 작성합니다.

조건이 참인 경우 코드를 실행하고 거짓이 된 경우 중단합니다.

var number = 1

while number <= 20 {
    print(number)
    number += 1
}

for, while 둘 중 어느경우에 사용해야 할까?

  • for문은 일반적으로 유한적인 범위로 사용됩니다. (예를 들어, 1~10, 배열의 항목 등등)
  • while문은 임의의 조건이 거짓이 될 때까지 반복합니다. 중지하라고 말할 때까지 반복합니다. 따라서 여러가지 경우에 편리하게 사용가능합니다.
    • 예시
      • 사용자가 중지 요청할 때
      • 서버가 중지 요청할 때
      • 찾고있는 답을 찾았을 때
      • 충분한 데이터를 생성했을 때

3. Repeat loops

스위프트에서는 반복되는 코드를 처리하는 방법 중 repeat문을 제공합니다.

가장 큰 특징은 repeat 내부의 코드는 조건이 참이든 거짓이든 적어도 한번은 항상 실행됩니다.

repeat {
    print("This is false")
} while false

repeat문을 사용하는 예시

  • 숫자 배열을 섞기 → 반환된 배열과 기존배열이 같은 경우 종료
  • shuffled() 메서드 사용 - 배열의 복사본을 생성하고 복사본 항목의 순서를 무작위로 된 배열을 반환
// MARK - While
let numbers = [1, 2]
var random = numbers.shuffled()

while random == numbers {
    random = numbers.shuffled()
    print("랜덤")
}

// MARK - Repeat
let repeatNumbers = [1, 2]
var repeatRandom: [Int]

repeat {
    repeatRandom = repeatNumbers.shuffled()
    print("repeat랜덤")
} while repeatRandom == repeatNumbers

→ while문과 비교하면 반복되는 코드 사용을 줄일 수 있습니다. while문에서는 shuffled를 한 후에 비교해야 하기 때문입니다.

4. Exiting loops

중간에 반복문을 중지시키고 싶을 때 break 키워드를 사용하면 원하는 위치에서 반복문을 중지시킬수 있습니다.

var countDown = 10

while countDown >= 0 {
    print(countDown)

    if countDown == 4 {
        print("I'm bored. Let's go now!")
        break
    }

    countDown -= 1
}

5. Exiting multiple loops

중첩으로 반복문을 사용한 경우 동시에 중단시켜야 하는 경우 외부루프에 레이블을 지정합니다.

break 를 외부루프로 지정합니다.

for i in 1...2 {
    for j in 1...2 {
        if j == 2 {
            break
        }
        print ("i: \(i) , j: \(j)")
    }
    print ("i: \(i)")
}

// 실행결과
i: 1 , j: 1
i: 1
i: 2 , j: 1
i: 2

outerLoop: for i in 1...2 {
    for j in 1...2 {
        if j == 2 {
            break outerLoop
        }
        print ("i: \(i) , j: \(j)")
    }
    print ("i: \(i)")
}

// 실행결과
i: 1 , j: 1

6. Skipping items

반복문에서 항목을 건너뛰고 다음 항목에서 반복을 진행하고 싶은경우 continue 키워드를 사용합니다.

반복문을 건너뛴다는 이야기는 괄호내부코드 전체를 건너뛴다는 이야기와 같습니다.

for i in 1...10 {
    if i % 2 == 1 {
        continue
    }

    print(i)
}

7. Infinite loops

무한루프를 사용할 때는 while문을 자주 사용합니다. 무한루프는 끝이 없거나 준비가 되었을 때만 끝나는 루프입니다. iOS앱도 계속해서 이벤트를 받아야 하므로 무한루프형식으로 앱이 실행되고 있습니다. 특정이벤트를 받아야 종료됩니다.

var counter = 0

while true {
    print(counter)
    counter += 1

    if counter == 273 {
        break
    }
}

링크

100 Days of Swift - Day 4 - Hacking with Swift

profile
iOS 공부 중 🧑🏻‍💻

0개의 댓글