可能重复: 什么是“?”在C++做什么?
xo = ((temp.npieces%2)==1)? 1 : 2;我不知道这意味着什么。
xo是一个整数(我认为仅仅是确定零和交叉之间的区别)。
临时位置是一个位置的例子,它存储关于一个零和十字板的信息(在零和十字板上的位置,游戏的状态(即它是赢了,输了,还是还没有决定),以及到目前为止放置在棋盘上的棋子数。
收藏到目前为止放置的件数。
%2显然是确定剩下的部分除以2,以确定这是奇数还是偶数,从而确定下一个是零还是叉。
它的结尾让我感到困惑,? 1 : 2比特,我肯定我以前见过这个或类似的东西,但是我恐怕我不知道这是做什么的。我知道这可能是非常基本的东西,但我在大学的第一年(我现在已经是第二年了)病得很厉害,并且遗漏了一些奇怪的片段,所以我的知识有一些令人恼火的随机的,经常是令人讨厌的空白。
(这是我正在做的一项任务的大量代码的一部分-试图理解几百行代码,包括。由于这是一项任务,我非常高兴没有被告知这一行的确切含义--实际上,我只是被指向一个解释? 1 : 2的资源的方向,这样我就可以自己解决了。无论是在线资源,还是Safari联机丛书中任何教科书中更大的章节,都会非常有用,或者,当然,在这里作一个非常简短的解释。
谢谢。
我对非特定问题标题表示歉意,因为我不知道不熟悉的代码是做什么或被调用的,所以我想不出更好的方法来表达它。
发布于 2010-12-03 14:26:49
xo = ((temp.npieces%2)==1)? 1 : 2;如果temp.npieces是偶数(因此除数为0),xo现在等于2,其他明智的xo现在等于1;
编辑:它不检查是否为Odd,它检查剩余的是否为正1。
X ? A : B 是另一种写作方式
if(X)
{
A
}else
{
B
}Edit2:
条件运算符的目的不是为了更快,也不是更考虑。条件运算符返回一个值。if没有。这就是主要的区别。Therefore x ? A : B isn't exactly the same as if( x ) { A; } else { B; }
Credit @JohnDibling
在C中,如果不等于0,则某事是真的。(即使是-145)
发布于 2010-12-03 14:28:35
bool ? 1 : 2叫做三元算子。如果bool为真,则返回1,否则返回2。
发布于 2010-12-03 14:28:06
三元算子
https://stackoverflow.com/questions/4346450
复制相似问题