[KR-DEV] 다시 시작하는 Swift - 반복문

in #kr-dev7 years ago

안녕하세요! @geunwoong0624 Decoy입니다.
오늘은 반복문에 대해 알아보도록 하겠습니다!
반복문은 조건문, 제어문과 함께 흐름제어구문으로 거론이 되며
추후에 배울 조건문과 같이 프로그래밍에서 가장 많이 사용하는 문법중 하나입니다!
오늘 설명은 눈을 크게 뜨고 잘 익혀두시기 바랍니다
그럼 시작합니다


흐름제어구문 : 프로그램이 실행될 때 프로그램의 실행 흐름을 제어 하기 위한 구문

반복문

  • 조건을 설정하고 조건이 맞다면 반복적으로 소스를 실행합니다
For 문
    for 변수 in 반복횟수 {
        실행할 구문 
    } 
  • 주로 정해진 횟수만큼 반복할때 사용합니다.
ex) 
    for i in 1...5{
        i
    }

  • 위의 소스에서 알 수 있듯이 앞서 배운 범위연산자를 통해서 반복문의 조건을 지정할 수 있습니다.
    (이제부터 배우는것들은 이렇듯 조금씩이라도 연결이 가능합니다)

  • 변수로 배열, 딕셔너리, 집합, 범위연산, 문자열 등 가능합니다.
    (변수로 사용되는 대상들은 아직 전부 배운것이 아니기에 천천히 알아가도록 하겠습니다.)

  • 변수는 자동적으로 선언이 되기에 따로 var이나 let으로 선언해줄 필요 없습니다.
    (이때의 변수는 for문 안에서만 사용이 가능합니다.)

  • Q) 그렇다면 String의 경우는 어떨까요?
    A) String은 한글자씩 변수에 저장됩니다.

    for ch in "ABCDE"{
        ch
    }
    의 경우 ch는 순차적으로 A,B,C,D,E 값이 저장됩니다.
  • 스위프트에서 문법적으로는 필요하지만 우리에게는 필요하지 않은 부분들에 대해서는 생략이 가능합니다. 예를 들어 반복이 1~5까지는 되지만 변수가 필요없는 경우가 있죠.
    for i in 1...5{
                print(“a\n”)
    }
    대표적인 예시입니다. 이때는 i 대신에 _(언더바)를 사용하면 됩니다.
    for _ in 1...5{
        print("a\n")
    }

While 문
   while 조건 {
      실행할구문
   }
  • 조건이 참이면 반복적으로 실행되고 조건이 거짓이면 반복이 종료됩니다.
    즉, 조건이 만족되는 동안 반복됩니다
   ex)
   var i = 1
   while i<=5 {
       i
       i+=1
   }

  • 반복이 진행 되면서 i의 값이 1씩 증가 합니다. 이때 i가 6 이상이 되면 조건이 만족하지 않으므로 반복이 종료됩니다.

  • Q) 만약 조건에 항진 값을 넣으면 어떨까요?
    A) 조건에 true를 넣을 경우 조건이 항상 참이기에 반복은 종료되지 않고 계속적으로 반복됩니다.

  • Q) while 반복문에서 i가 증가하는 부분이 없다면 어떻게 될 까요?
    A) i가 증가하는 부분이 없다면 i가 1에 머물러있기에 조건은 항상 참이 될 것입니다.

repeat~while 문
    repeat{
        실행구문
    } while 반복조건
  • 우선 반복문 안에 있는 소스가 한번 실행이 된후 조건을 판별하여 반복할지 종료할지 결정됩니다.
    ex)
    var i = 1          var a = 1
    repeat{            repeat{
        i                  a
        i+=1               a+=1
    }while i<=5        }while a<1

  • 반복이 진행되기전 해당 예시들은 한번씩은 돌아갑니다.

  • 오른쪽의 경우 l이 2가 된후에 조건을 검사하는데 이때 i가 1보다 작아야 하니 조건이 false가 되어 반복이 종료됩니다.

  • 이렇듯 repeat ~ while 에서 가장 중요한 것은 조건과 관계없이 최소 1번은 실행구문이 실행된다는 것입니다.


오늘 준비한 반복문에 대한 설명은 여기까지입니다.

조금의 부주의한 프로그래밍이 무한적인 반복을 생성할 수 있고 잘못된 형식의 반복은 어떻게 돌아가는지 이해하기 어려운 환경을 만들어 낼 수 있습니다.

하지만 이를 이해하고 조금더 많은 노력을 들인다면 분명히 좋은 프로그램을 만들 수 있습니다.

다음은 조건문에 대해 포스팅하겠습니다.

선 100일만 1일 1포스팅 버텨 보세요
[Ourselves 캠페인]
셀프보팅을 하지 않고 글을 올리시고
ourselves 테그를 달아 주시면
어떤 일이 일어날까요?
긴 젓가락으로 서로 먹여주는 천국이 이뤄지지 않을까요?

Sort:  

잘읽었어요. @홍보해

감사합니다ㅎ
제가 글에 소질이 없고 내용도 재미없지만 열심히 쓰겠습니다!
이후에는 좀더 재밌는 내용들도 올리겠습니다!

@geunwoong0624님 안녕하세요. 여름이 입니다. @julianpark님이 이 글을 너무 좋아하셔서, 저에게 홍보를 부탁 하셨습니다. 이 글은 @krguidedog에 의하여 리스팀 되었으며, 가이드독 서포터들로부터 보팅을 받으셨습니다. 축하드립니다!