티스토리 뷰

제어 전달문

(Control Transfer Statement)




1) 이론적 정의


  - 특정 코드에서 다른 코드로 제어를 이전하여 코드 실행 순서를 변경하는 것


  - Swift 에서는 5가지 키워드 사용.






2) 문법적 정의


  1. continue


  2. break


  3. fallthrough      * 조건문 파트에서 다루고 있으니 확인하시면 됩니다.


  4. throw              * 따로 다룰 예정


  5. return             * 함수 참고

 




2-1) Continue


  - Continue 는 구문 아래에 있는 실행 구문들을 건너뛰고 다음 반복을 시작하게 해주는 역할을 한다.


  - Continue 뜻 자체가 '계속하다' 라는 뜻임을 잘 기억하자.

 


e.g. Continue

 

for num in 0...8 {

    if num % 2 == 0 {

        continue

    }

    print(num) // 결과 : 1, 3, 5, 7

}



1 : num 으로 0부터 8까지의 수가 하나 씩 들어가게 되는 for ~ in 구문.


2 : 0이 처음으로 들어가게 되고 내부 실행구문인 if를 만나게 된다.


3 : '0 % 2 == 0' 의 조건을 만족하게 되어 내부 실행구문으로 들어가 continue 를 만나게 된다.


4 : 여기서 continue의 뜻은 '계속해서 밑으로 내려가세요' 가 아니라 '나(continue)를 만났으니 다시 돌아가서 하던 반복 이어서 계속하세요' 가 되는 것이다. 


5 : 그렇게 다음 num으로 1이 들어가서 if문을 만나 '1 % 2 == 0' 의 조건을 평가하게 되는데, 조건이 false 이므로 if문의 내용을 수행하지 않고 아래의 'print(num)' 을 수행한다.


6 : 이런 식으로 2부터 8까지 반복되어 결국 이 반복문은 홀수인 1,3,5,7 을 출력하게 되며 반복문이 종료된다.





2-2) Break


 - 반복문 혹은 Switch 구문에서 사용되는 'Break'.


 - 반복문에서 사용되면 즉시 반복문을 종료하게 만드는 역할.


 - Switch 구문에서 사용되면 특정한 case를 충족할 시 종료하게 만드는 역할.



e.g 1. 제어 전달문 Break


for num in 0...8 {

    if num % 2 == 0 {

      break                                 <---- break는 for문을 탈출할 때 쓰고, return은 함수를 탈출할 때 사용한다.

    }

    print(num)

}



1 : num 으로 0부터 8까지의 수가 하나 씩 들어가게 되는 for ~ in 구문.


2 : 0이 처음으로 들어가게 되고 내부 실행구문인 if를 만나게 된다.


3 : '0 % 2 == 0' 의 조건을 만족하게 되어 내부 실행구문으로 들어가 break 를 만나게 된다.


4 : for ~ in 구문 즉시 탈출.  아무것도 출력 되지 않고 끝나는 반복문.




e.g 2. 제어 전달문. Break


for i in 0...3 {

    for j in 0...3 {

        if i > 1 {

            break

        }

        

        print(" inner \(j)")

    }

    print("outer \(i)")

}



1 :  i로 0이 들어가게 되는데, 또 반복문을 만나게 된다. i는 0인 상태에서 j 에 0~3의 숫자가 하나씩 들어가게 된다. 


2 :  j에 0이 들어갔더니, 조건문을 만나게 된다. i인 0이 1보다 작으니 if문 내의 내용이 실행되지 않고 밑으로 내려가 'inner 0' 을 출력하게 된다.


3 :  j에 들어가는 1,2,3 까지 위와 동일한 과정으로 출력이 된다. 그 다음 안의 for 반복문이 종료가 되고 그 아래 outer \(i) 로 들어가 현재 i의 상태인 0이 들어가서


     outer 0 을 출력하면서 외곽의 for 문이 종료된다. 


4 :  i 에 1이 들어가게 되어도 위와 같은 과정을 거치게 된다.


5 :  하지만 i 에 2가 들어가게 되면서 사뭇 달라지는데, 직접 하나씩 넣어가면서 break 의 개념을 익힐 수 있도록 합니다 :)




결과)


 inner 0

 inner 1

 inner 2

 inner 3

outer 0

 inner 0

 inner 1

 inner 2

 inner 3

outer 1

outer 2

outer 3



지금까지 제어 전달문에 대해서 알아보았습니다. 틀린 부분이 있으면 댓글로 지적해주시면 감사드리겠습니다.


Made by Inswag's Swift in FastCampus 7th iOS Development School




댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함