안녕하세요!
오늘은 제어 전달문인
제어 전달문
break
continue
fallthrough
return
에 관하여 알아보고자 합니다
break
break 구문은 switch 구문에서 실행 흐름이나 반복 실행 중인 루프를
조건식의 결과에 상관없이 즉시 종료 합니다
switch 구문에서
개별 case 블록에 사용되어 전체 switch 구문의 실행을 종료하는 역할을 합니다
for(반복문) 에서
반복 실행 블록에 사용되어 조건식이 false를 반환하기 전에 미리 반복문을 종료하는 역할을 합니다
둘다 종료라는 말이 나오니
간단히 말해
break를 마주치면
빠져나오구나라고 이해하시면 된답니다
우선 for문에서 사용하는 break문은
for문에서 break를 만나게되면 즉시 종료되어
1
2
출력되는걸 확인할 수 있습니다
switch문에서 사용하는 break문을 확인하면
switch에서
해당 부합하는 case에 들어갔을 때
break가 있다면
switch문을 종료하게 됩니다
마지막으로 중첩된 for문에서도 확인할 수 있답니다 :)
내부에 break를 넣어도 즉시 전체 for문이 종료됩니다
일부 사람들은 건너뛰고 다음 숫자를 실행한다고 생각할 수 있지만
전체 for문이 즉시 종료되는걸 볼 수 있습니다
why??...
outerLoop를 빠져나와라는 명령문이랍니다!
outerLoop는 for i in 1...3의 명칭이라고 생각하시면 됩니다!
outerLoop == for i in 1...3
만약 그냥 break였으면
결과값은 다릅니다~!
continue
break 구문에 필요에 따라 강제로 실행 흐름을 종료했다면
continue 구문은 현재 실행 구문을 건너뛰고 다음 반복을 시작합니다
종료와는 다른 개념이랍니다
만약 1...10이 있다면
3에서 break를 건다면
1,2만 출력되겠지만
cotinue를 만나게된다면
1,2,4,5....10
즉 3빼고 출력이 된답니다
continue도 2중 for문안에 쓰면 어떻게 될까요??
3이 출력이 안되는걸 볼 수 있습니다
이렇게 위치만 조금 변경했을 뿐인데도 출력값이 바뀌는걸 확인할 수 있습니다
outerLoop를 만나면서 아예 j의 값이 올라가버리는걸 볼 수 있습니다
그래서 출력을 할 수 없기 때문에
(1,2)도 출력이 안되는걸 볼 수 있습니다
그리고 continue 옆에 외부 for문을 건너 뛸건지 유무도
결과값이 달라지는걸 알 수 있답니다
fallthrough
fallthrough는
저번 조건문에서 설명하였으므로
url로 대체하겠습니다 :)
간단히 이야기하자면 switch문에서 사용이되며
fallthrough를 만나게되면 조건에 부합하지 않아도 다음에 실행하게 된답니다
https://ios2080dev.tistory.com/9
조건에 부합하지 않아도 fallthrough를 보게되면
다음 케이스를 즉시 실행하게됩니다
return
return은 정말 여러곳에서 활용을 많이 한다고 생각하는데요
break문과 비슷하게 조기 종료나 반복문을 종료라기보다 탈출할 때 사용한답니다
값을 반환할 때 쓰입니다
나중에 사용할 함수(메서드)에서 매개변수값을 활용하여 반환값을 반환할 때 사용한답니다
코드를 통해서 확인!
이렇게 값을 반환을 해줍니다
정수뿐만 아니라
자료형에 따라 내가 어떤식으로 코드를 짜는지에 따라서 다양한 자료형이 반환값으로
나올 수 있답니다
void반환
반환값이 없을 때 사용합니다
조기종료
함수나 메서드 실행 중간에 조건을 걸어 실행을 중단하고 값을 반환할 수가 있답니다
guard문과 함께 사용한 예제를 작성해보았습니다 :)
값이 0이면 else문으로 빠져서 nil을 반환하도록 설계했습니다
반복문 탈출
특정 조건을 만족할 때 반복을 중지하고 함수를 빠져나올 수 있답니다
이렇게 다양한 코드에 제어를 걸 수 있는 제어문을 알아보았습니다
만약 설명이 부족하거나 잘못된 점이 있다면 꼭 댓글로 알려주시면 감사하겠습니다!
'Swift' 카테고리의 다른 글
Swift | Collection (컬렉션)에 관하여 2- Set (0) | 2024.05.11 |
---|---|
Swift | Collection (컬렉션)에 관하여 1- Array (0) | 2024.05.10 |
Swift | 조건문에 관하여 - if / swift / guard (0) | 2024.05.09 |
Swift 공식문서| 제어 흐름 (Control Flow)에 관하여 - 반복문 foreach와 for문에 관하여 (0) | 2024.05.09 |
Swift 공식문서| 제어 흐름 (Control Flow)에 관하여 - 반복문 while문 (0) | 2024.05.09 |