Java 中++在前和++在后的区别是什么

小编 1680

Java中++在前和++在后的区别是:++在前,叫做先自增后赋值;而++在后,是先赋值后自增。同样是a=1,赋值给b,如果是++a,那么a先自增1得2,再赋值给b,所以a=2,b=2。如果是a++,则先把a的值赋给b,a再进行自增,所以b=1而a=2。

1.Java中++在前

Java中++在前表示:先自增后赋值。如:b = ++a;// ++写在前面,说明++先有效,即a要+1,然后赋值给b。

详细解读:

  • int a = 1;
  • int b = ++a;
  • System.out.println(“b=”+b);
  • System.out.println(“a=”+a);

在上面例子中,由于++a,++在前,所以a先自增1,即a=2;然后a再把值赋给b,所以最终效果是:b=2,a=2。

2.Java中++在后

Java中++在后表示:先赋值后自增。如:b = a++; // ++写在后面,说明前面那个东西前用了,也就是a先赋值给b了,然后a再+1。

详细解读:

  • int a = 1;
  • int b = a++;
  • System.out.println(“b=”+b);
  • System.out.println(“a=”+a);

如上所示,++在后,因此先把a的值赋给b,得到b=1;然后a再进行自增,a=2。最终结果是:b=1,a=2。

总结,++在前和++在后的关键区别就是:先赋值还是先+1的问题。对于我们常写的for (int i = 0; i < n; i++) {} 这个++写前写后都一样,实际上我们在这里需要的是先+1,再参与后续的操作,但写成++1就有些别扭,至少SUN的源文件中for循环中都是写i++的。也就是说,++在前在后的影响,只在一条语句中有效,即一个分号“;”中有效,出了这个分号就不好用了。所以for循环的i++怎么写都行,因为这个分号不涉及其它操作,也就无所谓先后了。

延伸阅读

java中=和==的区别是什么

Java中=是赋值运算,而==用于判断值是否相等。例如:a=b就是把b的值赋予给a,而a==b就是判断a等于b。以下是判断==运算符比较两个值是否相等的判断条件:

1.如果两个值具有相同的类型,那么就检测他们的等同性。如果这两个值完全相同,他们俩就相等;如果不完全相同,就不相等。

2.如果两个值类型不同,他们的值仍然可能相同,用下面的规则来检测他们:

  • 如果一个值是null,另一个值是undefined,它们相等。
  • 如果一个值是数字,另一个值是字符串,把字符串转换为数字,再用转换后的值进行比较。
  • 如果一个值为true,将它转化为1,再进行比较。如果一个值为false,把它转化为0,再进行比较。
  • 如果一个值是对象,另一个值是数字或字符串,将对象转换成原始类型的值,再做比较。可以使用对象的toString()方法或 valueOf()方法把对象转化成原始类型的值。JavaScript核心语言的内部类通常先尝试valueOf()方法转换,再尝试toString()方法转换,但是对于Date类,则先执行toString()方法再执行valueOf()方法转换。不属于JavaScript核心语言的对象则可以采用 JavaScript实现定义的方式把自身转换成原始数值。
  • 其他的组合,不相等。

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部