А если переписать байткодом... то можно было бы лениво шаг вычислять, и таким образом избежать ненужного вычисления, когда индекс равен нулю, или когда он выходит за допустимые пределы (если количество элементов массива не является степенью двойки, то такое может пару раз случится)
EDIT: Да, и не нужно было бы проверять константое условие в цикле, просто джамп за пределы лейбла, когда результат найден %)