[Swift 문법] - For loop, While, Repeat, Exit, Skip, Infinite

sun02·2021년 7월 9일
0

100 days of Swift 

목록 보기
3/40

1. For loops

Swift에는 루프를 작성하는 여러 방법이 있지만 그들 기저에 깔려있는 매커니즘은 모두 같다 – 조건이 거짓으로 평가될 때까지 해당 코드를 반복적으로 실행하라.

Swift서 가장 일반적인 루프는 for 루프문이다. – 이것은 배열과 범위를 반복하고 루프가 한 번 돌아갈 때마다 하나의 항목을 꺼내 상수에 할당한다.

let count = 1…10
  • 여기 숫자 범위가 있다.
for number in count {
    print(“Number is \(number)”)
}
  • 각 항목을 출력하기 위해 루프를 다음과 같이 사용할 수 있다.
let albums = [“Red”, “1989”, “Reputation”]

for album in albums {
   print(“\(album) is on Apple Music”)
}
  • 똑같은 것을 배열로도 할 수 있다.
print(“Players gonna “)

for _ in 1…5 {
    print(“play”)
}
  • 만약 for 루프문안에서 주어진 상수를 사용하지 않는다면 Swift가 필요없는 값을 만들지 않도록 언더바 '_'를 사용할 수 있다.

2. While loops

루프문을 작성하는 두 번째 방법은 while을 사용하는 것이다. – 확인할 조건을 주고, 그 조건이 거짓이 될 때까지 루프문의 코드는 계속해서 실행된다.

예를 들어, 우리는 아이가 숨바꼭질을 하면서 숫자를 셀 때 while 루프문을 사용할 수 있다.

var number = 1

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

print(“Ready or not, here I come!”)
  • 1에서 시작하고 20까지 각 숫자를 출력하면서 센다. 그리고 루프가 끝나면 “Ready or not.”을 출력한다.

3. Repeat loops

루프문을 작성하는 세 번째 방법은 자주 사용되진 않지만 배우기 쉽다. – 이것은 반복 루프문이라 불리고 확인해야할 조건이 마지막에 온다는 것을 제외하곤 while 루프문과 같다.

따라서 우리는 숨바꼭질 예제를 다음과 같이 다시 쓸 수 있다.

var number = 1

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

print(“Ready or not, here I come!”)

반복 루프문에서는 조건이 마지막에 오기 때문에 루프문 안의 코드는 항상 적어도 한 번은 실행된다.
반면 while 루프문은 첫 실행 전에 조건을 확인한다.

while false {
     print(“This is false”)
}
  • false는 항상 거짓이므로 이 print() 함수는 절대 실행되지 않을 것이다.

Xcode 는 저 print() 문이 실행되지 않는다고 경고도 줄 것이다.

repeat {
     print(“This is false”)
} while false
  • 반면, repeat은 루프문이 실행된 이후에 조건을 만족하지 못하기 때문에 이 print() 함수는 한 번 실행될 것이다.

4. Exiting loops

break 키워드를 사용해서 루프를 언제든지 빠져나갈 수 있다.

var countdown = 10

while countDown >= 0 {
     print(countDown)
     countdown -= 1
}

print(“Blast off!”)
  • 로켓 발사를 위해 카운트 다운을 하는 while 루프문이다.
while countdown >= 0 {
    print(countdown)
    
    if countdown == 4 {
     print(“I’m bored. Let’s go now!”)
     break
    }
  
    countdown -= 1
}	
  • 우주비행사는 카운트 다운 도중 지루해져 나머지는 건너 뛰고 곧바로 발사하기로 결정하였다.

이 변화로, countDown이 4가 되면 우주비행사의 메세지가 출력되고 나머지 루프는 건너뛰어진다.

5. Exiting multiple loops

루프문 안에 루프를 넣는 것을 nested loop(중첩 루프)라고 한다.
내부 루프와 외부 루프를 동시에 깨고 나오려는 것은 드물지 않다.

for i in 1…10 {
    for j in 1…10 {
       let product = i * j
       print(“\(i) * \(j) is \(product)”)
    }
}
  • 1에서 10까지 계산하는 타임테이블 코드를 다음과 같이 적을 수 있다.

만약 우리가 도중에 종료하고싶다면 두 가지를 실행해야한다.

outerLoop: for i in 1…10 {
    for j in 1…10 {
       let product = i * j
       print(“\(i) * \(j) is \(product)”)
    }
}
  • 먼저, 우리는 바깥 루프에 다음과 같이 라벨을 지정해야한다.
outerLoop for i in 1…10 {
    for j in 1…10 {
       let product = i * j
       print(“\(i) * \(j) is \(product)”)
 
       if product == 50 {
         print(“It’s a bullseye!”)
         break outerLoop
    }
}
  • 두번째로, 내부 루프 안에 조건을 적고 두 루프를 동시에 빠져나오기 위해 break outerLoop를 사용한다.

일반적인 break로는 내부 루프만 종료된다 – 외부루프는 중단된 지점에서 계속된다.

6. Skipping items

break 키워드는 루프를 종료시킨다.
하지만 만약 현재 항목만 넘기고 다음 항목은 계속 지속하고 싶다면 continue를 쓰면 된다.

for i in 1…10 {
   if i % 2 == 1 {
     continue
    }
   print(i)
}
  • 1에서 10까지의 루프를 적고 나머지 연산자를 사용해서 홀수는 건너뛰도록 한다.

나머지 연산자는 루프의 각 숫자에 2가 몇 번 들어가는지 알아낸 다음 나머지를 반환한다. 따라서, 만약 1이 남았다면 이것은 그 숫자가 홀수라는 것을 의미하고
우리는 이것을 건너뛰기 위해 continue를 사용한다.

7. Infinite loops

무한 루프를 만들기 위해 while 루프문을 사용하는 것은 일반적이다. 무한루프는 끝이 없거나 네가 준비가 되었을 때만 끝나는 루프이다.
아이폰의 모든 앱들은 실행을 시작한 뒤 네가 이벤트를 끝내기로 선택할 때까지 이벤트를 계속해서 주시하고 있기 때문에 무한 루프를 사용한다.

무한 루프를 만들기 위해서 true를 조건으로 사용한다.
True는 항상 참이기 때문에 그 루프는 영원히 반복될 것이다.
주의 : 루프를 종료시키는 검사가 있는지 확인해라 그렇지 않으면 절대 끝나지 않는다.

예를 들어, John Cage의 piece 4’33”을 출력하기 위해 while true 를 사용할 것이다 – 만약 뭔지 모른다면, 이것은 4분 33초동안 완전한 침묵으로 유명하다.

var counter = 0

while true {
     print(“ “)
     counter += 1

     if counter == 273 {
      break
      }
}
  • while true를 사용해서 이 작품의 음악을 작성할 수 있으며 충분한 시간이 지나면 루프를 종료시키는 조건도 포함한다.

출처

0개의 댓글