ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Swift] Swift 문법 (5) - 반복문(for, while)
    Front-End(Mobile)/iOS & Swift 2022. 1. 27. 01:05
    반응형

    이번 포스팅은 Swift의 반복문(Loop)에 대해 알아보려고 한다.

    Swift 역시 같은 로직을 반복하는 코드를 작성하기 위한 반복문이 존재하며, 그 문법이나 맥락 자체는 크게 다르지 않다.

     

    상대적으로 난이도도 어렵지 않은 내용이라, 간단한 포스팅으로 정리해보겠다!


    📙 For 문

    for문은 순회할 수 있는 타입(이터레이터: 배열, 딕셔너리 등)을 순회하거나, 혹은 특정 횟수만큼 로직을 반복할 때 주로 사용되는 반복문의 일종이다.

    Swift는 기본적으로 for-in 반복문을 사용하며, 문법은 아래와 같다.

    // 배열
    let alphabet: [String] = ["a", "b", "c", "d"]
    
    for char in alphabet {
      print(char)
    }
    
    // a
    // b
    // c
    // d
    // 숫자
    for i in 0...4 {
      print(i)
    }
    
    // 0
    // 1
    // 2
    // 3
    // 4

     

    딕셔너리의 경우엔, 아래처럼 (key, value)의 튜플 형대로 for문을 순회할 수 있다.

    let people = ["Tom": 22, "Harry": 24, "Jain": 20]
    
    for (name, age) in people {
      print("\(name) is \(age) years old!")
    }

     

    - continue / break

    Swift의 for문에서도 특정 조건에 따라 로직을 스킵하거나 종료시키는 키워드들이 존재한다.

     

    먼저, continue는 다음 로직을 실행하지 않고 다음 반복문 순서로 넘기는 키워드이다.

    보통, 특정 조건에서 걸기 때문에 조건문(if)과 많이 쓰인다.

    for i in 0...4 {
      if i <= 0 { continue };
      print(i)
    }
    
    // 1
    // 2
    // 3
    // 4

    위 예시에서 보듯이, i가 0 이하인 경우엔 다음 print 로직을 실행하지 않고, 이외의 경우에만 실행된 모습이다.

     

    다음으로, break반복문을 강제로 종료시키는 키워드이다.

    for i in 0...5 {
      if i == 3 { break };
      print(i)
    }
    
    // 0
    // 1
    // 2

    위 예시는, i가 3인 경우 반복문이 종료된다. break가 걸리면 다음로직이 실행되지 않으며, 다음순서(4) 뒤로는 생략하게 된다.

     

    - for-where 반복문

    for 반복문에서 특정 조건에만 로직을 실행하기 위한 문법이다. 문법은 아래와 같다.

    for [요소] in [목록(이터레이터)] where [조건] {
      // 내부로직...
    }
    let range = [1, 2, 3, 4, 5, 6]
    
    for i in range where i%2 == 0 {
        print(i)
    }
    
    // 2
    // 4
    // 6

    위 예시는, range의 숫자들을 반복문을 통해 순회하되 짝수(2로 나눈 나머지가 0)인 수들만 print하는 for-where 반복문이다.

     

     

     

    📙 While 문

    while문 역시 다른 프로그래밍 언어와 다르지 않다. 특정 조건이 만족하는동안 내부로직을 계속해서 실행하는 반복문인 것이다.

    문법은 아래와 같으며, 조건은 통상 밖에 있다. 이 조건에 대해 실행구문 내에서 제어해주지 않으면 무한루프가 생길 위험성이 있다.

    // 조건(인덱스, 배열 등등)
    
    while [조건] {
      // 내부로직
    }
    let name : [String] = ["song", "kim", "park", "chang" ]
    
    var i : Int = 0
    while i < 4 {
        print("name is \(name[i])")
        i += 1
    }

    while문도 마찬가지로 continue, break를 통한 반복문 제어가 가능하다.

     

    - repeat-while 반복문

    Javascript 및 다른 언어의 do-while 반복문과 유사하다.

    while문은 선조건 후로직이라면, 이 repeat-while은 선로직 후조건인 것이다.

    var j = 10
    
    while j < 10 {
      print(j)
    }
    // 아무 출력값 없음
    
    
    repeat {
        print(j)
        j += 1
        
    } while j < 10
    // 10

    사실, 반복문의 개념이나 문법이 여타 프로그래밍 언어와 많이 다르지 않아 포스팅을 간단하게 마무리할 수 있었다.

    조건문과 같은 포스팅에 포함할까 했으나 딱히 연계성도 적고, 다음 포스팅에서 별도로 정리하는 것이 깔끔하다고 생각된다!

     

    📎 출처

    - [Swift5 강의] iOS Academy(Part 6 - Loops) : https://www.youtube.com/watch?v=8Z0mImrIITA&list=PL5PR3UyfTWvfacnfUsvNcxIiKIgidNRoW&index=6 

     

    - [조건문과 반복문] devxoul 님의 깃북 : https://devxoul.gitbooks.io/ios-with-swift-in-40-hours/content/Chapter-2/control-flow.html

    - [반복문] 프린스송 님의 블로그 : https://velog.io/@wook4506/iOS-Swift-Swift-%EB%AC%B8%EB%B2%95%EC%9D%84-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90-3%ED%8E%B8-%EB%B0%98%EB%B3%B5%EB%AC%B8for%EB%AC%B8-while%EB%AC%B8  

    - [반복문] 야곰 님의 블로그 : https://blog.yagom.net/549/  

    - [For문 심화] minmong 님의 블로그 : https://minmong.tistory.com/119

    반응형
Designed by Tistory.