// 앞의 binIndexOf 함수를 코틀린 컴파일러가 컴파일한 결과는 이런 식으로 루프로 작동한다
    fun binIndexOf(
      x: Int,
      array: IntArray,
      from: Int = 0,
      to: Int = array.size
    ): Int {
      var fromIndex = from
      var toIndex = to
      
      while (true) {
        if (fromIndex == toIndex) return -1
        val midIndex = (fromIndex + toIndex - 1) / 2
        val mid = array[midIndex]
        
        when {
          mid < x ->fromIndex = midIndex + 1
          mid > x ->toIndex = midIndex
          else -> return midIndex
        }
      }
    }
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.