[Swift] Swift 제어전송문

swimmer_o3o·2022년 11월 7일
0
post-thumbnail

🙇🏻‍♀️ 초심과 다르게 그만 포스팅이 밀렸네요 ㅠㅅㅠ… 문법공부와 현생(스타트업, 학교일 등등) 에 치여 기록도 학습임을 점점 망각해가고 있었나봅니다. 이제부터라도 다시 블로그 첼린지 가보겠습니다!! 🔥

오늘은 Swift의 함수, 반복문, switch 문에서 자주 사용되는 제어전송문 키워드들의 역할과 활용에 대해 알아봅시다!

제어 전송문


제어 전송문이란, 코드의 제어권을 다른 코드 파트로 넘겨줌으로서, 코드가 실행되는 순서가 바뀌게끔 하는 코드 구문을 일컫는다.

Swift에서는 break, fallthrough, continue, return , throw 키워드를 통해 제어 전송문을 구현한다.

break

break 키워드는 switch문, 그리고 반복문 에서 사용된다.

  • switch문에서의 break의 사용 : switch 문의 특정 case 에서 아무런 동작도 하지 않는 것을 의도 할 때, break를 사용한다.
var i = 2

switch i {
case 0...3 :
    print ("small")
    fallthrough
case 4...5 :
    print ("medium")
case 6...8 :
    print ("Big")
default :
    break // defalut 케이스 일때 아무런 동작도 하지 않는다.
}
  • 반복문에서의 break의 사용 : (현재 코드에서 가장 인접한) 반복문의 실행을 종결할때 break를 사용한다.
for i in 1...6 {
	for j in 1...3{
		if i/j == 0 {
				break // i가 j의 약수일 경우 인접한 반복문 (for j in 1...3) 가 중단된다.
		}
	}
	print("hello")
}

fallthrough

fallthrough 키워드는 switch문에서 사용되며, 사용된 케이스의 바로 뒷 케이스 까지 반드시 실행해야 할때 사용한다.

var i = 2

switch i {
case 0...3 :
    print ("small")
    fallthrough // case 0...3 에 해당할때, 반드시 다음 케이스(case 4...5)의 실행문도 실행된다.
case 4...5 :
    print ("medium")
case 6...8 :
    print ("Big")
default :
    break 
}

위 코드와 같이, case 0…3에서 fallthrough 키워드가 사용되면, 바로 인접한 다음 case 까지만 실행되고, 그 다음 case는 실행되지 않는다. 즉 이름이 fallthrough 라고 해서, 맨 마지막 case 까지 떨어지는게 아니라, 바로 다음 케이스까지만 실행된다는 점에 유의해야한다.

continue

continue는 반복문에서 사용되며, 반복문의 현재의 사이클을 종료하고, 바로 다음 사이클로 넘어가 반복문을 지속해야 하는 경우에 사용된다.

for i in 1...9{
	if i/3 == 0{
		print("3의 배수")
		continue 
	}
}

예를들어, 위와 같은 코드에서, i가 3의 배수일때 print함수를 호출하고, continue 키워드를 만나 바로 다음 i의 사이클로 넘어간다.

return

return은 함수에서 사용되는 키워드인데, 해당 함수의 반환값의 존재 여부에 따라서 그 역할이 살짝 다르다.(본질적으로 의미는 같다.)

  • 반환값이 있는 함수에서의 사용. : 함수의 결과값 (return 키워드 다음의 표현식의 결과)을 반환하며 함수가 호출된 곳으로 되돌아간다.
  • 반환값이 없는 함수에서의 사용. : 함수를 종결하며, 함수가 호출된 곳으로 되돌아간다.

throw

throw는 에러의 발생이 가능하도록 정의된 함수에서, throw 키워드 다음에 정의된 에러의 타입을 반환하고, 함수 실행을 중지하며 함수가 호출된 곳으로 되돌아가게 하는 키워드이다. throw는 에러 처리 구문에서 사용되는 제어전송 키워드로, 추후 에러처리에서 구체적으로 다루겠다.

정리


지금까지의 내용을 표로 간단히 정리하면 다음과 같다.

profile
서비스 기획과 개발을 아우르며, IT 생태계를 유영하는 물고기🐠. 무한한 가능성이 잠재된 IT의 바다속으로 깊게 잠수하는 큰 고래🐋 로 성장하고 싶습니다.

0개의 댓글

관련 채용 정보