我正在编写一个方法,并想知道附加的代码是否有效取决于它的编写方式:
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语句基本上做了同样的事情,根据编码标准会更高效吗?
效率没有差别,但风格有明显差异,第二个更好.但是,这个特殊的逻辑确实是公正的
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)