我想清理我的if-else逻辑

时间:2012-11-28 03:57:13

标签: java coding-style if-statement code-cleanup

这似乎效率低下或丑陋或出于任何原因,我希望它更优雅

if (a > b) {
    recurseWith(a);
    recurseWith(b);
else {
    recurseWith(b);
    recurseWith(a);
}

在我的代码中,a和b更长,新函数的参数更笨重,而且看起来很蹩脚。有没有办法清理它?

顺序很重要,因为它们使用全局变量,而且这段代码正常工作。

我正在寻找Java的解决方案

-Austin

2 个答案:

答案 0 :(得分:0)

以下逻辑会不会有帮助吗?

if(a<=b) swap(a,b);

recurseWith(a);
recurseWith(b);

答案 1 :(得分:-2)

我没有一个好的答案,但根据参数的粗糙度/长度可以将它们隐藏在Runnable中,因此您只需要编写一次。你决定这是否“更干净”。这里看起来会更糟,因为我们正在使用ab

Runnable aRunnable = new Runnable() {
    public void run() {
        recurseWith(a);
    }
}

Runnable bRunnable = new Runnable() {
    public void run() {
        recurseWith(b);
    }
}

if (a > b) {
    aRunnable.run();
    bRunnable.run();
else {
    bRunnable.run();
    aRunnable.run();
}