我已经看到了许多循环和增量。而不是做i + +他们做i + = 1.这是为什么?
答案 0 :(得分:15)
个人偏好和风格。
答案 1 :(得分:9)
并非所有语言都有++
运算符(python,for one)......可能这些人来自其中一种语言的背景。也有些人认为i++
不是很清楚,特别是因为某些语言对i++
和++i
的处理方式不同。
答案 2 :(得分:3)
防止过度狡猾。至少这就是克罗克福德所说的。
答案 3 :(得分:3)
一般原因是有两种不同版本的增量表现不同
var i = 0;
1 == ++i // true
和
var i = 0;
1 == i++; // false
++i
转换为“递增i,然后评估”,而i++
转换为“评估i,然后递增”
当您将这些表达式编写为i = i + 1;
时,很清楚程序员的意图是什么,并且更容易在代码中找到错误。这与人们写“ yoda clauses ”的原因相同,如
if(6 == x){
//. . .
}
因为如果你不小心做了
if(6 = x){
//. . .
}
更容易发现错误
答案 4 :(得分:2)
i = i + 1
更容易用英语解码。 i++
虽然完全正确但在初学者阅读代码时不能很好地翻译。程序员可能试图让初学者更容易理解他们的代码,或者可能只是不想过分关注语法。没有良好的理由使用其中一个。
答案 5 :(得分:0)
有些人发现i = i + 1
或i += 1
的描述性比i++
更具描述性。这只是编码风格和可读性的问题。在大多数当前语言中,不同方式之间根本没有性能差异。
++
和--
运算符存在一些可读性问题,但主要是当它们与其他运算符一起使用时,它们本身使用时并不是真正的问题。例如++x+-++y+-z++
之类的表达式是完全有效的,但很难看出它实际上做了什么。由于操作员在某些情况下会导致可读性问题,因此有些人认为应该始终避免这些问题。