코드 실행 멈추기
조건문, 반복문을 사용할 때 실행 중이던 코드를
바로 중단하거나 조건으로 되돌아 가도록 할 때 사용하는 키워드 3가지
- return
- break
- continue
return(리턴, 반환): 중단하고 함수내에서 결과값을 반환하거나 지정된 레이블로 이동한다.
break(브레이크, 중지): 조건에 상관없이 반복문을 끝내고 나간다.
continue(컨티뉴, 계속): 조건을 모두 실행하지 않고 다시 조건문으로 간다.
return(리턴) 키워드
먼저 아래 함수를 실행하면 결과는 어떻게 나올까?
함수는 다음과 같은 과정으로 실행한다.
변수 foo에 목록(list)을 Int타입으로 넣는다.(1,2,3,4,5)
변수foo의 각 항목에 대해(forEach) 실행하라
{ 만약 it이 3과 같으면
출력하라(it을) }
출력하라("도착가능")
- listOf ( ) 함수는 리스트(목록)을 만들 때 사용한다. 코틀린의 자동 추론으로 <Int>는 생략할 수 있다.
- forEach ( ) 함수는 주어진 리스트의 각 항목을 실행한다.
- it은 각 항목이 조건에 들어올 때 마다 매개변수 이름을 새로 만드는 것이 불필요 하므로 각 항목의 대표 이름으로 사용하는 키워드이다. 영어 뜻 그대로 암시적으로 "그것"
- 코딩에서 자주 볼 수 있는 foo는 주로 별로 중요하지 않은 것의 이름으로 사용하며 특별한 의미 없이 옛날 부터 관습적으로 사용하고 있음.
이번에는 위 함수에 return을 넣어보자.
위 함수는 어떤 결과가 나올까?
return 키워드는 결과값을 반환 후 main()함수를 종료하기 때문에 "UnReachable"이 출력 안됨.
이렇게 호출한 본래 함수로 반환하고 종료하는 것을 non-local(비지역) 반환이라고 함.
만약 return 후 가장 가까운 함수 밖으로 나가게 하려면 레이블@ (label at)을 사용한다.
함수명 다음에 레이블명@으로 선언하고 return뒤에는 @레이블명을 붙인다.
함수명 레이블명@ {
return@레이블명
}
아래 코드를 작성한 후 실행 해보자.
위 코드의 return@lat 은 항목이 3이 되면 다음 줄로 가지 않고 lat@ 레이블로 값(3)을 반환한다.
다음 항목 4, 5를 출력한 후에는 해당 함수의 실행부분(중괄호)을 빠져나간다.
참고로 레이블 이름은 아무 이름으로 할 수 있지만 관습적으로는 lit로 하는 것 같은데 label과 it을 합한 것인지는 모르겠다. 나는 label과 at기호를 합쳐서 lat로 표현 했다.
다음 글에서는 break , continue에 대해 알아본다.
끝.
'프로그래밍 언어 > 코틀린_쌩초보를 위한 기초' 카테고리의 다른 글
쌩초보를 위한 기초_19_예외처리 Exception (0) | 2020.03.20 |
---|---|
쌩초보를 위한 기초_18_흐름 중단 break & continue (0) | 2020.03.20 |
쌩초보를 위한 기초_16_반복문 for while (0) | 2020.03.18 |
쌩초보를 위한 기초_15_조건문 when (0) | 2020.03.17 |
쌩초보를 위한 기초_14_조건문 if else (0) | 2020.03.14 |