黑马程序员技术交流社区

标题: 帮忙看一下x++=2是错误的语句?x和y的值能打印出来? [打印本页]

作者: aerkadiya    时间: 2013-6-5 20:38
标题: 帮忙看一下x++=2是错误的语句?x和y的值能打印出来?
本帖最后由 aerkadiya 于 2013-6-9 21:46 编辑

class Demo
{
        public static void main(String[] args)
        {
                int x=1,y=1;
                if(x++=2 & ++y=2)
                {
                        x=7;
                }
                System.out.println("x="+x+" , y="+y);
        }
}
作者: 亮吖    时间: 2013-6-5 23:54
本帖最后由 亮吖 于 2013-6-5 23:56 编辑

1x和y跟2比较要用双等于号 与要用&&if(x++==2&&++y==2)

打印出来x=2,y=1

作者: 曹世明    时间: 2013-6-6 21:07
class Demo
{
        public static void main(String[] args)
        {
                int x=1,y=1;
                if(x++==2 && ++y==2)
                {
                        x=7;
                                               
                }
                System.out.println("x="+x+" , y="+y);  //class shuchu
{
        public static void main(String[] args)
        {
                int x=1,y=1;
                if(x++==2 && ++y==2)
                {
                        x=7;
                                               
                }
                System.out.println("x="+x+" , y="+y);   //class shuchu
{
        public static void main(String[] args)
        {
                int x=1,y=1;
                if(x++==2 && ++y==2)
                {
                        x=7;
                                               
                }
                System.out.println("x="+x+" , y="+y);   //x=2,y=1
        }
}

        }
}

        }
}

作者: 张歆明    时间: 2013-6-6 22:54
x++是x自增 之后  x再赋值为2  &的右边也是 这样计算  两个数按位与(&)结果不是boolean类型 所以 错了 Java的if while for(;条件表达式;) 都要求为boolean类型的  C++ 这些里面  可以不是boolean类型的  C就没有boolean类型  
作者: 李阳阳    时间: 2013-6-9 14:31
本帖最后由 李阳阳 于 2013-6-9 14:33 编辑

& 是两边都得运算  ,&&的话是如果左面为假,右边的就不参与运算了,
所以如果是if(x++==2 & ++y==2)的话 ,x和y的最后结果都加1了,就是x=2,y=2;
是if(x++==2 && ++y==2)的话,因为“x++ == 2”不满足条件为假,右边就
不再参与运算了,所以最后为x=2,y=1.

另外就是++a与a++的区别了:
a++就是先拿a的值参与运算,运算完之后a的值再加1,
++a是a先执行加1动作,然后再拿a的值去参与运算。

作者: 袁梦希    时间: 2013-6-9 14:44
楼主你好  如果帖子的问题已经解决,请把帖子的类型改为“已解决”。{:soso_e102:}
作者: aerkadiya    时间: 2013-6-9 21:46
谢谢各楼的解答,学习啦




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