黑马程序员技术交流社区
标题:
+= 和 =+ 的问题!<已解决>
[打印本页]
作者:
余银桂
时间:
2012-6-11 23:58
标题:
+= 和 =+ 的问题!<已解决>
本帖最后由 余银桂 于 2012-6-12 18:06 编辑
public static void main(String[] args) {
int a;
a=+1;
int b;
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
a=+1;//给a赋值+1,正号可以忽略
b+=1;//相当于b=b+1;先计算b加1的值,再赋值给b,可是b此时还未初始化,无法参与运算,所以这里报错
//变量使用前一定要初始化!
复制代码
作者:
王广丛
时间:
2012-6-12 00:48
你可以这样来验证
public static void main(String[] args){
int a = 2;
a =+1;
int b = 2;
b+=1;
System.out.println(a);
System.out.println(b);
}
复制代码
结果是
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