注册 登录
编程论坛 C++教室

条件运算的不明白

luxiaocheng 发布于 2010-02-07 15:11, 746 次点击
#include<iostream.h>
void main()
{
    int i=10,j=15,n=0;
    n=i>j?i++:++j;
    cout<<"i="<<i<<"\tj="<<j<<"\tn="<<n<<endl;
    n=i-j?i+j:i-10?j:i;
    cout<<"i="<<i<<"\tj="<<j<<"\tn="<<n<<endl;
}


    n=i-j?i+j:i-10?j:i;   这里有点不明白,谁能很简单的帮忙解释一下;
4 回复
#2
mfkblue2010-02-07 16:57
少看这种代码没啥营养。
拆开后其实就是个比大小。
#3
gyx88992010-02-07 22:23
是n=(i-j)? (i+j): ((i-10)? j : i));的意思。三目运算符的叠加运算。对于这种应该分解理解。
#4
pangding2010-02-07 22:44
2楼说的对,这代码确实写的不行。

三目运算符的嵌套是个馊主意,它大的降低了代码的可读性。而且引入了复杂的逻辑。
有更好的写法,而且依靠现代一些的编译器,完全可以生成也许效率更高的代码。
#5
sirtang2010-02-09 21:17
3楼正解,但不建议这样写
1