public int iterativeBinarySearching(int[] array, int value) { @CodeLabel("header")
  if (array == null || array.length == 0) { @CodeLabel("ifNull")
    return -1; @CodeLabel("invalid")
  }
  int nrElems = array.length(); @CodeLabel("getArrayLength")
  int l = 0; @CodeLabel("installLMarker")
  int r = nrElems - 1; @CodeLabel("installRMarker")
  int mid = (l + r) / 2; @CodeLabel("installMidMarker")
  while (r > l && array[mid] != value) { @CodeLabel("whileLoop")
    if (value < array[mid]) { @CodeLabel("ifLess")
      r = mid - 1; @CodeLabel("continueLeft")
    } else {
      l = mid + 1; @CodeLabel("continueRight")
    }
    mid = (l + r) / 2; @CodeLabel("updateMidElem")
  }
  if (array[mid] == value) { @CodeLabel("checkFound")
    return mid; @CodeLabel("found")
  } else {
    return -1; @CodeLabel("notFound")
  }
}