A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhanglaoda1989 中级黑马   /  2015-5-19 22:55  /  746 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int x = 1,y = 1;

if(x++==2 && ++y==2)
{
        x =7;
}
System.out.println("x="+x+",y="+y);
结果   x=2,y=1

11 个回复

倒序浏览
x++是先赋值 后++  所以x++==2是false因为先拿1和2比 比完之后才+1  所以 x的值是2&&前面false右边不执行
回复 使用道具 举报
给int类型X赋值1,Y赋值1,如果X++==2则后边的不运算因为是&&双与前边正确所以后边不运算y值不变。x=7没有参与运算所以最后值是X=2,y=1.,
回复 使用道具 举报
基础知识弄懂了就会分析了
回复 使用道具 举报
++在后面时先赋值才运算,而且&&具有短路的功能,后面的不进行运算
回复 使用道具 举报
++和--的用法
                a:他们的作用是自增或者自减
                b:使用
                        **单独使用
                                放在操作数据的前面和后面效果一样。
                                a++或者++a效果一样。
                        **参与操作使用
                                放在操作数的前面:先自增或者自减,再参与操作
                                                int a = 10;
                                                int b = ++a;
                                        放在操作数的后面:先参与操作,再自增或者自减
                                                int a = 10;
                                                int b = a++;
回复 使用道具 举报
这个不难吧,你跟着思路去想就可以啦
回复 使用道具 举报
一楼就是正解了,所以就不多啰嗦了
回复 使用道具 举报
太绕了,没必要纠结这种题
回复 使用道具 举报
这个就是运算符的优先级问题,X++的运算优先级比==低,所以x++==2这个条件不成立,在比较过后才会给x赋值,而&&的特性就是后面的运算不赋值
回复 使用道具 举报
lizhi 来自手机 中级黑马 2015-5-20 17:27:22
11#
双与如果符号左边是false,右边就不再执行了,所以x自加了,y没执行到
回复 使用道具 举报
                                        放在操作数的后面:先参与操作,再自增或者自减
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马