结论:while循环的自由度更高
for循环:
可以看到,对于变量 i 的操作,只能有一句:i++
/* for 循环 */
function forLoop(n: number): number {
let res = 0;
// 循环求和 1, 2, ..., n-1, n
for (let i = 1; i <= n; i++) {
res += i;
}
return res;
}
while循环:
function forLoop(n: number): number {
let res = 0;
// 循环求和 1, 2, ..., n-1, n
while ( i <= n) {
res += i;
i++; //更新变量条件
}
return res;
}
考验:
求和(100内):1、4、10、22、46…之和
function whileLoopII(n: number): number {
let res = 0;
let i = 1; // 初始化条件变量
// 循环求和 1, 4, 10, ...
while (i <= n) {
res += i;
// 更新条件变量
i++;
i *= 2;
}
return res;
}
此时显然用while是比较合适的
总结
for 循环的代码更加紧凑,while 循环更加灵活,两者都可以实现迭代结构。选择使用哪一个应该根据特定问题的需求来决定。