java中 int x=3, y=4;
x=(y<x++)?1:0;
x=多少?
不懂x=(y<x++)?1:0; 这行代码的意思

解决方案 »

  1.   

    等同于
    if(y<x++)
    x = 1;
    else
    x=0;
      

  2.   

    因为自增操作的优先级要低于赋值操作,所以程序先进行赋值操作及y<x,而后进行x的自增操作及x=x+1;执行完括弧里面的内容后x变成了4. 因为条件判断为false,因此再次将x赋值为0。先学习一下三目操作符,然后了解一下++操作。这个问题就比较简单了。
      

  3.   

    (y<x++)?1:0
    ?: 三元运算符,意思为?号左边的表达式是否为真,如果为真则把冒号左边的1赋给x,否则把冒号右边的0值赋给x
      

  4.   

    如果y<x++的话。x的值就唯一,否则为0
      

  5.   

    x=(y<x++)?1:0;(y<x++)?1:0 这是个三目运算符,应该知道吧。
    这段代码的意思是:把三目运算符的值赋给变量x。说说三目运算符:
          a?b:c   a为true,执行b
                  a为false,执行c
    很明显,(y<x++) 是false,所以这段三目运算符的值为 0,再把0赋给x,所以x的值为0。
      

  6.   

    ?: 三目运算
    < ++的优先级别
    后++计算规则
    = 赋值运算
    运算的顺序
    x++;x++的值是3,但是x的值是4
    y<x++,相当于4<3值为false
    false?1:0 计算的结果是0
    = 赋值运算 
    于是x=0
      

  7.   

    如果x=(y<x++) 返回1,否则返回0