以下两个代码块是否应该等效?我的直觉说是的,但它们会产生不同的行为。
第一个代码块按我预期的方式工作,第二个没有。我真的很想使用第二种风格,因为它使实际的代码(这里省略了一些)更短更容易。
if (expanding) {
radius += delta;
if (radius > maxRadius)
expanding = false;
} else {
radius -= delta;
if (radius < minRadius)
expanding = true;
}
相对
if (expanding && (radius += delta) > maxRadius) {
expanding = false;
} else if ((radius -= delta) < minRadius) {
expanding = true;
}