黑马程序员技术交流社区

标题: 下面这个题为什么结果是 11? [打印本页]

作者: 十指相扣    时间: 2014-3-24 20:57
标题: 下面这个题为什么结果是 11?
本帖最后由 十指相扣 于 2014-3-25 20:34 编辑

Class Demo
{
public static void main(String [] args)
{
        int a=10;
        if(a++>10)
{
        a=20;
}

        System.out.println(a);
}
}

作者: sxhs2008    时间: 2014-3-24 21:32
你把a变成:++a就可以打印出20了,++在前,是先自加在运算,++在后是先运算在自加
作者: luoyilan222    时间: 2014-3-24 22:04
        public static void main(String[] args) {
                int a = 10;
                // 先说下a++地意思吧 就是要把if (a++ > 10)这句执行完后a==11;
                // 当执行到if (a++ > 10)
                // 先执行a++ (现在a还是等于10)
                // 然后比较10>10不成立
                // 然后跳转到 下一行,现在a==11
                // 所以最后结果输出11 System.out.println(a);
                if (a++ > 10) {
                        a = 20;
                }
                System.out.println(a);
        }
作者: whb359106956    时间: 2014-3-24 22:10
Class Demo
{
public static void main(String [] args)
{
        int a=10;
        if(a++>10)     //这句话的意思是先判断a的值是否大于10 若成立执行a=20语句,然后a自加1 因为a的值是10所以条件不成立,不会执行对a重新赋值的操作,然后a自加1,然后打印。要想让它打印出20只要将>改为>=即可。
{
        a=20;
}

        System.out.println(a);
}
}

作者: tcny    时间: 2014-3-25 00:13

  1. Class Demo
  2. {
  3. public static void main(String [] args)
  4. {
  5.         int a=10;
  6.         if(a++>10)//此处相当于boolean b = a > 10; a++; if(b){
  7. {
  8.         a=20;
  9. }

  10.         System.out.println(a);
  11. }
  12. }
复制代码





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