iOS/Swift이론

[iOS]Swift 반복문 : for-in, while, repeat-while

Sweetft 2022. 3. 3. 21:48
  • for-in
  • while
  • repeat-while

 

for

for 루프상수(i) in 순회대상(range) {

   //실행할 구문

}

코드블록에 작성된 코드가 루프상수와 순회대상에 따라서 반복 실행이 된다.

//예시
for i in 1...3 {
  print(i) //결과 : 1 2 3
}

//배열을 활용
let array = [1,9,40,2]
for i in array {
  print(i) //결과 : 1 9 40 2
}

let arrayString = ["일","이"]
for i in arrayString {
  print(i) //결과 : 일 이
}

 

for문에는 where을 사용하여 조건을 추가할 수 있다.

  - where문이 참일 경우에만 for문이 돌아간다.

 

이를 활용하여 1~10까지 짝수만 출력되도록 코드를 작성해보자.

let range = 1...10
for i in range where i%2 == 0 {
    print(i) //결과: 2  4 6 8 10
}

이는 밑에와 같다.

for i in range {
    if i%2 == 0 {
        print(i) //결과: 2  4 6 8 10
    }
}

 

while

주어진 조건식이 false가 될 때 까지 계~속 반복

  - 즉, 조건이 만족되는 한 계속 실행된다.

  - 조건식은 반드시 boolean 타입이어야 함

 

while 조건식 {

  //실행 구문

}

var num = 5
while num < 10 {
  num+=1
  print(num) //결과: 6 7 8 9 10
}
print(num) //결과: 10

 

break, continue

while문 안에서 사용 가능하다.

break: 조건문과 무관하게 break를 만나면 종료

continue: continue를 만나면 다음 문장을 실행하지 않고 조건문으로 되돌아감

var num = 1
while num < 10 {
  print(num) //결과: 1 2 3
  if num == 3 {
      print("종료됩니다!!")
      break
  }
  num+=1
}
print(num) //결과: 3

 

만약 while 반복문과 continue로 1~10까지 홀수만 출력하고 싶다면 어떻게 해야할까?

var num = 0
while num<10 {
    num = num+1
    if num%2 == 0 {
        print("짝수패스")
        continue
    }
    print(num)
}

 

repeat-while

while과 비슷하지만 일단 무조건 한번은 실행시킨다.

 

repeat {

  //실행할 구문

} while 조건식

var x = 6
repeat {
  x += 2
} while x < 5
print(x) //결과: 8
// while문이었으면 x가 5 보다 크니까 블록 안의 코드가 실행이 안됨 
// repeat while문이어서 1번은 무조건 실행하고 빠져나와서 결과가 8이됨