我正试图躲开光滑的衬垫,因为我觉得它可能是可能的。
我会将我的代码放在下面,然后尝试解释一下我正在努力实现的目标。
for (int p = 0; p < 2; p++)
{
foreach (string player in players[p])
{
if (PlayerSkills[player].streak_count *>* 0) //This line
PlayerSkills[player].streak_count++;
else
PlayerSkills[player].streak_count = 0;
}
}
*(p == 0?&gt;:&lt;)根据p选择比较运算符。
当然,我写的是垃圾。但基本上我想在p == 0时使用&gt; 0,在p&gt;&gt; 0时使用&lt; 0。有没有很好的方法来实现这个目标?
答案 0 :(得分:9)
好吧,你应该使用最具可读性的东西,即使它不是一样的。那说......
// Invert the count for all but the first player and check for a positive number
if (PlayerSkills[player].streak_count * (p==0 ? 1 : -1) > 0)
答案 1 :(得分:4)
我不知道光滑,但以下和/或组合是一行:
if ((p == 0 && PlayerSkills[player].streak_count > 0)
|| PlayerSkills[player].streak_count < 0)
...
这将只执行一次数组索引(由于首先发生p == 0条件),因此相当于&#34;三元&#34;你写的(虽然有点冗长)。
答案 2 :(得分:0)
p > 0 ? whenGreaterThanZero : whenZeroOrLess ;
E.g。
int p = 1; bool test = p > 0 ? true : false ;
让test
= True