看看下面的代码的问题:
a = f1(x);
b = f2(x + a);
for(c = f3(a, b); c > 0; c = f3(a, b)) {
statements
a = f1(++x);
b = f2(x + a);
}
问题:
1、循环条件很乱,一眼看不清楚,需要分析。
2、a, b, c都进行了多次的函数调用赋值,不符合代码DRY原则。
3、一般for循环条件中第一个是初始条件,第三个是对初始条件进行变化的,中间的条件是边界。
a = f1(x);
b = f2(x + a);
for(a = f1(x); b = f2(x + a), c = f3(a, b); c > 0; a=f1(++x)) {
statements
}