对于(x
-
y)
?
(x++)
:
(y++);,当x
==
y时,执行y++,否则执行x++,表达式的结果要么是x++,要么是y++。
对于(x
-
y),表达式的结果是x与y的差值。
对于(x
-
y
==
0)来说,表达式的值是逻辑值,要么是真(1),要么是假(0)。
显然三个表达式不能相互替代,故这个说法是错误的。
if((x-y)!=0)
{
x++;
}
else
{
y++;
}
化成if-else结构,就能很好的解释。x-y==0,也就是,x==y。
?:中的(x-y)?也就是: (x!=y)。想用 (x-y==0)?就用:(x==y)或者(!(x-y))
(条件) ? 条件真执行 : 条件为假执行
真为非0值,假为0值
所以
(x-y)?(x++):(y++)
相当于
(x-y != 0?(x++):(y++)
你理解反了。
(x-y)?(x++):(y++)
当x-y值为零时执行y++;语句;当x-y值非0时,执行x++语句。