这行代码有什么作用? player =(玩家%2)? 1:2;

时间:2016-01-13 18:17:42

标签: c++ visual-c++ data-structures

我无法理解这一行 为什么我们使用问号“?”在里面。 有2名球员1和2。

player = (player % 2) ? 1 : 2;

4 个答案:

答案 0 :(得分:3)

它是ternary operator

如果player最初为奇数,则此行代码会将1设置为player,如果是偶数,则将2设置为ArrayList

答案 1 :(得分:3)

这是条件if,与:

相同
if(player % 2)
    player = 1; // Odd
else
    player = 2; // Even

没有if分支的另一种方法:

player = 2 - (player & 0x01);

偶数的最低有效位为零。

答案 2 :(得分:0)

它是三元运营商。它采用以下形式:

boolean expression ? a : b;

转换为:

If this expression is true, then a else b

它经常被用作赋值运算符中的右手表达式。在您的情况下,player根据它们是偶数还是奇数被分配1或2。

答案 3 :(得分:0)

这意味着如果条件为真,那么玩家拥有值1,否则它有2。

if(player % 2) {
    player = 1;
} else {
    player = 2;
}