沐丶風缘
2018-11-09 04:36
采纳率: 100%
浏览 689
已采纳

JAVA算术运算符的优先级

public static void main(String[] args) {

          int a,b,c;
          a=b=c=5;
          a=++b-++c;
          System.out.println("a="+a+"b="+b+"c="+c);
          a=b+++c++;
          System.out.println("a="+a+"b="+b+"c="+c);
          a=b--+c--;
          System.out.println("a="+a+"b="+b+"c="+c);
        }
        }
        为什么这串代码第二次第三次输出的a值是在b c自增之前所得出的?
        按优先级不是应该自增自减运算先吗?
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • Zoey_C 2018-11-09 05:29
    已采纳

    a++和++a,a++是在整句执行完之后才执行的,也就是在;之后执行,而++a是在语句执行前执行的。

    已采纳该答案
    打赏 评论
  • threenewbee 2018-11-09 04:57

    结果
    a=0b=6c=6
    a=12b=7c=7
    a=14b=6c=6
    前面++b,先+1,表达式等于之后的,所以是6
    b++,的值是自增前,6,然后b+1

    打赏 评论

相关推荐 更多相似问题