我很想在Java中缩短这个循环。关于我应该怎么做的任何提示?

时间:2016-11-21 06:26:07

标签: java while-loop

while (head <= tail) {
        if (Choice == possibleNumbers[(head + tail)/2]) {
            foundNumber = true;
            break;
        }
        else if (Choice < possibleNumbers[(head + tail)/2]) {
            tail = (head + tail)/2 - 1;
        }
        else
            head = (head + tail)/2 + 1;
    }
    return foundNumber;
}

这是我在课堂上做过的一个搜索者实验室的一部分。

1 个答案:

答案 0 :(得分:2)

如果你担心代码的长度,我建议赞成清晰而不是简洁。对它进行编码通信,并且代码的可读性和可扩展性比它简短更重要。

如果这是生产代码,我会说使用库方法 - 我认为这相当于Arrays.binarySearch,但看起来你是在做练习。

我建议的一种代码样式更改 - break会使循环逻辑更难以遵循。如果您将条件更改为while (head <= tail && !foundNumber),那么您可以将其删除。