高效的编程技术

use*_*043 0 java standards

我正在编写一个方法,并想知道附加的代码是否有效取决于它的编写方式:

    public boolean isThreeOfKind(PlayingCard[] hand)
    {
//            if(hand[0].getRank() == hand[2].getRank())
//                return true;
//            else if(hand[1].getRank() == hand[3].getRank())
//                return true;
//            else if(hand[2].getRank() == hand[4].getRank())
//                return true;

        return (hand[0].getRank() == hand[2].getRank() || 
                hand[1].getRank() == hand[3].getRank() || 
                hand[2].getRank() == hand[4].getRank());
    }
Run Code Online (Sandbox Code Playgroud)

所以你可以看到我有一个if else if语句被注释掉了,一个return语句基本上做了同样的事情,根据编码标准会更高效吗?

Mar*_*nik 9

效率没有差别,但风格有明显差异,第二个更好.但是,这个特殊的逻辑确实是公正的

for (int i = 0; i < 3; i++) 
  if (hand[i].getRank() == hand[i+2].getRank()) return true;
return false;
Run Code Online (Sandbox Code Playgroud)