• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

stop, down to 함수질문

22.05.26 13:05 작성 조회수 127

1

stop, down to 가 함수라고 설명해주셨는데, 큰 범위의 수를 도는 반복문에 stop, down to 가 호출되면 스택오브플로우와같은 에러가 발생하지 않는 이유는 무엇인가요..?

답변 1

답변을 작성해보세요.

0

안녕하세요~ 높은면백두산님!! 좋은 질문이시네요~ :)

이 역시 글로 작성할 수 있어서 바로 말씀드리겠습니다!

 

결론부터 말씀드리면

step / down 같은 함수는 for (   ) 에서 소괄호 사이에 있고, 소괄호 안에 있는 함수는 1번만 호출되기 때문입니다!

fun main() {
  for (i in returnList()) {
    println(i)
  }
}

fun returnList(): List<Int> {
  println("숫자를 반환합니다")
  return listOf(1, 2, 3)
}

 

 

다음과 같은 코드가 있다고 했을 때, main 함수를 실행시켜 보시면 "숫자를 반환합니다"가 한 번만 호출될거에요!!

그리고 사실, for 문 안에서 함수가 여러번 불리더라도 JVM 위에서 동작하는 Kotlin은 JVM이 알아서 메모리 정리를 해주기 때문에 무한 루프가 도는게 아니라면, stack over flow가 나지 않을 수 있습니다!

감사합니다!!!