更快的方法吗?

时间:2012-08-01 15:33:13

标签: c++ visual-c++

有没有更好的方法来做某事......

int VarableNumberOne = RandomNumberGenerator();
int VarableNumberTwo = RandomNumberGenerator();

if(VarableNumberOne == 4 || VarableNumberOne == 8 || VarableNumberOne == 12)
{
//do code
}
else if(VarableNumberTwo == 4 || VarableNumberTwo == 8 || VarableNumberTwo == 12)
{
//do code
}

能够拿出最短代码的人才会获胜。

3 个答案:

答案 0 :(得分:2)

这取决于RandomNumberGenerator返回的内容。假设4,8和12是它返回的4的唯一倍数,你可以这样做:

if (VarableNumberOne % 4 == 0)
{
    //do code
}
else if (VarableNumberTwo % 4 == 0)
{
    //do code
}

答案 1 :(得分:1)

您需要检查所需值的反向掩码以及值是否为零。

int a = RandomNumberGenerator();
int b = RandomNumberGenerator();

if( a && !( a & ~12 ) )
{
//do code
}
else if( b && !( b & ~12 ) )
{
//do code
}

答案 2 :(得分:0)

if (variableNumberOne & 12) {
     // ...
} else if (variableNumberTwo & 12) {
    // ...
}