黑马程序员技术交流社区

标题: 运算符运算顺序先后问题 [打印本页]

作者: 谢铭    时间: 2013-8-10 00:32
标题: 运算符运算顺序先后问题
代码如下:
int x=1;
b=b+=1;
书上有讲到赋值运算符的运算顺序是从右到左:
以下这些是较常用的赋值运算符:
=  *=  /=  %=  +=  -=  <<=  >>= >>>=  &=  ^=  |=,这些的运算顺序是从右到左。
那么
int b=1;
b=b+=1;
是不是可以这样理解:
int b=1;     b=1
b=b+1       b+1这个式的值是2
b=2
整个运算是这样的,请问有哪位知道,这样是否正确。
作者: 黄兴旺    时间: 2013-8-10 12:33
  1. class  Test
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int b=1;
  6.                 b=b+=1; //从右至左运算,
  7.                         //先是运算b+=1结果为2,然后是运算b=2.
  8.                 System.out.println(b);
  9.         }
  10. }
复制代码
符上java运算符优先级表一张:http://tech.ccidnet.com/art/3737/20090316/1710085_1.html

1.jpg (100.33 KB, 下载次数: 25)

1.jpg

作者: EYE_SEE_YOU    时间: 2013-8-11 10:19
b=b+=1
前面b=不是废话来的嘛,把b赋给b
b+=1拆开来就已经是
b=b+1了




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