‘if’语句太多

问题:

以下代码的工作方式是我需要的,但它是丑陋的,过多的或其他一些事情。我已经看过公式,并尝试编写一些解决方案,但我最终得到了类似的声明。
在这种情况下,是否有一种数学公式会使我受益,或16条if语句是否可以接受?
为了解释这些代码,它是一种同时进行的基于游戏的游戏。两个玩家每个都有四个动作按钮,结果来自一个数组(0-3),但变量’one’和’two’可以是分配任何东西,如果这有助结果是,0 =无胜,1 = p1胜,2 = p2胜,3 =双赢。

public int fightMath(int one, int two) {

    if(one == 0 && two == 0) { result = 0; }
    else if(one == 0 && two == 1) { result = 0; }
    else if(one == 0 && two == 2) { result = 1; }
    else if(one == 0 && two == 3) { result = 2; }
    else if(one == 1 && two == 0) { result = 0; }
    else if(one == 1 && two == 1) { result = 0; }
    else if(one == 1 && two == 2) { result = 2; }
    else if(one == 1 && two == 3) { result = 1; }
    else if(one == 2 && two == 0) { result = 2; }
    else if(one == 2 && two == 1) { result = 1; }
    else if(one == 2 && two == 2) { result = 3; }
    else if(one == 2 && two == 3) { result = 3; }
    else if(one == 3 && two == 0) { result = 1; }
    else if(one == 3 && two == 1) { result = 2; }
    else if(one == 3 && two == 2) { result = 3; }
    else if(one == 3 && two == 3) { result = 3; }

    return result;
}

回答:

如果你不能想出一个公式,你可以使用一个表来获得如此有限的结果:

final int[][] result = new int[][] {
  { 0, 0, 1, 2 },
  { 0, 0, 2, 1 },
  { 2, 1, 3, 3 },
  { 1, 2, 3, 3 }
};
return result[one][two];

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Too many ‘if’ statements?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

23 + = 30