黑马程序员技术交流社区

标题: += 和 =+ 的问题!<已解决> [打印本页]

作者: 余银桂    时间: 2012-6-11 23:58
标题: += 和 =+ 的问题!<已解决>
本帖最后由 余银桂 于 2012-6-12 18:06 编辑
  1.         public static void main(String[] args) {
  2.                 int a;
  3.                 a=+1;
  4.                
  5.                 int b;
  6.                 b+=1;
复制代码
为什么 a 那里编译通过, b 反而编译失败!

这 =+ 和 += 有什么区别?
作者: 杨天皓    时间: 2012-6-12 00:08
没有初始化的变量是不能使用的。
作者: 杨天皓    时间: 2012-6-12 00:12
你后面那个b+=1

就是b=b+1;

你b都没有初始化一个值。肯定错啦


作者: 吴超    时间: 2012-6-12 00:21
首先说错误,   b没有给出初始化
a=+ 1和 int a=1;a+= 1有什么区别?
第一个可以看作是符号,加号
第二个   看作是a=a+1;
作者: 赵兵锋    时间: 2012-6-12 00:24
  1.         a=+1;//给a赋值+1,正号可以忽略
  2.         b+=1;//相当于b=b+1;先计算b加1的值,再赋值给b,可是b此时还未初始化,无法参与运算,所以这里报错
  3.         //变量使用前一定要初始化!
复制代码

作者: 王广丛    时间: 2012-6-12 00:48
你可以这样来验证
  1. public static void main(String[] args){
  2.                 int a = 2;
  3.                 a =+1;
  4.                 int b = 2;
  5.                 b+=1;
  6.                 System.out.println(a);
  7.                 System.out.println(b);
  8.                
  9.         }
复制代码
结果是
1
3
所以说明了,a =+1;中的+表示的是正号,而        b+=1;中的+=其实就是java语言自定义的一个符号,就是b=b+1的简写,
就如同++这样的符号一样,一般这样的符号要特别注意优先级问题,比如++的很多面试题:int c = b+++a;问c的值等等
作者: 万宝东    时间: 2012-6-12 08:52
a=+1;就是基本的赋值,将+1赋值给a;格式写的清楚一点就是  a   =   +1;不会报错
b+=1;这个表示b = b + 1;b还没有初始化,不能参与这样的运算,所以报错.
作者: 黑马黄宏强    时间: 2012-6-12 11:39
+= 是JAVA定义定运算符号,而=+不是一个标准运算符号;

  int a;   a=+1;//意思是声明整型变量a,并将+1赋值给a ,这里只做了声明和赋值。
  int b; b+=1;//意思是声明整型变量b,并将b+1的值重新赋值给b,这里声明了b但未给b赋值,所以无法计算b+1, 变量应遵循先声明,赋值后使用的原则。


作者: 余银桂    时间: 2012-6-12 18:05
{:soso_e113:}大致了解了!谢谢了




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