黑马程序员技术交流社区

标题: 这个题答案是多少啊? [打印本页]

作者: 冯瑞君老师    时间: 2011-12-16 10:35
标题: 这个题答案是多少啊?
int x=1,y=2
(x++)+(++y)等于多少?
作者: 杨扬    时间: 2011-12-16 10:41
本帖最后由 杨扬 于 2011-12-16 11:26 编辑

输出结果是4.
(x++)+(++y)
++y 把y=2 加1后 ,再与1相加..运算完后 .在计算x++
所以(x++)+(++y)=4, 做完这步计算后.x=2
弄清x++ 和 ++x 的优先级,结果就显而易见了
作者: 刘基军    时间: 2011-12-16 10:54
(x++)+(++y)
1.在该等式中括号的优先级最高,x所以先计算(x++),再计算(++y),最后将两个表达式的值相加
2.计算(x++)表达式,对于++在变量名后面,那么先将x的值赋给(x++)表达式,然后x进行自增操作,则(x++)=1,x=2
3.计算(++y)表达式,对于++在变量名前面,那么先将y进行自增操作,然后将y的值赋给(++y)表达式,则y=3,(++y)=3
即:(1)+(3)=4
作者: 孙海亮    时间: 2011-12-16 10:59
结果等于4,X++就是先用X参加运算然后再把X的值加1,++X就是先把X加上1,然后把X加上1后的的结果参加运算。(x++)+(++y)这个就让X=1参加运算,++y就是让y先自加1然后在参加运算,也就是(x++)+(++y)=1+(2+1)=4
作者: 郭繁森    时间: 2011-12-16 11:15
问题都不会问,如果只要结果那就是4,要过程楼上的讲了  Ps:也或许大家多此一举了,你问的仅仅是个结果
作者: 付旭    时间: 2011-12-16 19:11
要结果还需要问  直接运行下不就完了
作者: 张帅    时间: 2011-12-16 22:29
首先,答案肯定是四,但是他的运算顺序是 从右 像 左 执行的。
作者: 黄战胜    时间: 2011-12-17 14:54
对于运算符的操作,只要记住两个规则:
1,运算优先级
    加减,乘除,左移,右移,位运算,等等。这个运算符都有一个运算优先级,记住这个优先级,如果不确定的话,就加();
2,运算的顺序
   给你一个表达式首先要明确这个这些运算符是从左到有运算还是从右往左运算。
记住这两点,一般的运算都是小Kiss。
作者: 窦超    时间: 2011-12-19 21:48
()的优先级最高,进行自增运算时符号在前就是先运算后取值,符号在后则是先取值后运算。
作者: 马嘉    时间: 2014-9-1 19:24
大牛们,那么这个的结果是多少呢
             int x = 2;
             x=x++;
             x=x++;
        System.out.println(x);




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2