기초

9.control Tranfer Statements

섭섭's 2024. 6. 2. 02:43

제어전달문

제어전달문은 조건문과 반복문에서 사용하며, 코드의 실행흐름을 바꾸는 역할을 합니다.

 

예제를 하나 적어보겠습니다.

 

for index in 1...100{
	print("start")
   	
    if index < 5 {
    	continue
    }
    
    if index > 10 {
    	break
    }
    
    print("end")
}

 

코드의 흐름을 확인해 보겠습니다.

 

1에서 100까지 반복하는 코드이며

 

매번 반복을 시작할 때 마다 start를 출력하고 있습니다.

 

반복상수에서는 index가 5보다 작으면 contiune 가 출력됩니다.

 

게속 반복하다 반복상수가 11이 되면 브레이크가 호출되며 

 

브레이크는 호출 즉시 코드를 끝내는 역할을 가지고 있습니다.

 

break문

위에서 설명했지만 브레이크는 호출 즉시 코드를 끝냅니다

 

예제를 하나 적어보겠습니다.

 

let num = 1 

switch num {
case 1 ... 10:
	print("begin block")
    
    if !num.isMultiple(of:2) {
    	break
    }
    
    print("end block")
default:
	break
}

print("Done")

 

코드를 실행하면 

begin block 이 출력된 후 바로 Done 이 출력됩니다.

 

하나씩 따라가보겠습니다.

 

case block 에서 1에서 10사이의 범위를 매칭시키고 있습니다.

 

num의 값은 1이니까 케이스블록의 범위 안에 있습니다.

 

그렇기 때문에 begin block 이 출력되고,

 

그 후 if문에서 홀수인지 확인하는데

 

num의 값이 홀수니까 if블록이 실행되며 브레이크문이 작동합니다.

 

그렇기 때문에 뒤에있는 end block은 출력되지 않습니다.

 

switch문이 종료되고 바로 뒤에있는 print문이 출력됩니다.

 

이번에는 반복문에서 사용해보겠습니다.

 

for index in 1 ...10{
	print(index)
    
    if index > 1 {
    	break
    }
}

 

원래대로라면 1부터 10까지 실행되어야 하지만


if문에서 1보다 크면 브레이크문이 실행되게 해 놨기 때문에

 

컴파일되면 값은 1 2 가 나오게 됩니다.

 

continue 문

 

countinue는 반복문에서만 사용합니다.

 

예제는 for 문으로 사용하지만 while 문에서도 똑같이 사용할 수 있습니다.

 

for index in 1 ... 10{
	if index.isMultiple(of: 2) {
    	continue
    }

	print(index)
}

 

해당 코드를 실행하면 1 3 5 7 9 라는 값이 나오게 됩니다.

 

이 코드에서 countinue의 사용의미는 현재 실행중인 반복을 즉시 끝내고 다음 반복으로 넘어갑니다.

 

브레이크와는 다르게 for문 자체를 끝내지는 않습니다.

 

 

'기초' 카테고리의 다른 글

11.Functions & Closures  (1) 2024.06.02
10.Optionals  (0) 2024.06.02
8.Range Operators  (0) 2024.06.02
7.Conditional Statements  (1) 2024.06.02
6.Operators  (0) 2024.06.01