2016-08-05 42 views
1

我想知道postfix操作符比赋值操作符更好。换句话说,使用其中一个的优点/局限性是什么。使用修复后操作符优于赋值操作符有哪些优点/限制?

int a = 10; 
a++; 

//over 

int a = 10; 
a += 1; 

谢谢。

+0

可以下来的选民帮我纠正这个问题吗?我想知道为什么一个比另一个更优先。我的问题是重复的还是应该不被问到的? – nam

回答

1

首先,a++a--a += 1a -= 1更容易编写。

另外,假设您想要执行一个方法,并按1递增a。 您的方法头:public static void doSomething(int smth)

然后有几件事情可以做:(我们假设这些线路是你的主要方法的一部分,也int a = 10;

您可以使用后缀运算符:

doSomething(a++); 
//this will at first execute your method with a and then increment it by one 

或者你也可以使用更长的版本

doSomething(a); 
a += 1; //possible too, but longer 

也有--a++a,它会首先增加一个,然后把它交给一个方法或者做一些其他的事情。

0

除了明显的后缀++没有真正的技术限制:它可以只有增加1 ...没有任何其他数字。当然,它使ZERO与性能不同。

这两种形式之间的另一个可能的区别是可读性。在这种情况下,这是一个意见问题......我的观点是他们同样可读。然而,如果你开始在更复杂的表达式中嵌入postfix和前缀递增/递减,那会严重损害你的代码的可读性;例如尝试找出什么a = a++;做...

+0

a = a ++是我永远不会做的事情。当增量操作符本身执行赋值时,没有指定a = a ++的要点。可能的答案我会与增量运算符分配运算符是减少我的代码@adrian – nam

+0

@nam - 为什么是“减少”你的代码的目标?目标*应*为可读性...由你自己和其他人。 –

+0

@stephan - 设计其实是原因!我正在尝试遵循编码标准。顺便说一下,我指的是你的答案:) [如这里所述](http://stackoverflow.com/questions/10256068/is-there-a-limit-on-the-number-of-lines-你可以放在一个eclipse-java -d?noredirect = 1&lq = 1) – nam

相关问题