1.14: 对比for循环和while循环, 两种形式的优缺点各是什么?
解答:
这里po一点点个人看法.
while循环只定义了循环结束的条件, 所以使得while循环的使用更为自由, 更具有灵活性. 比如说我们可以用一个函数返回值作为while循环的判断条件:
while(!isQuit()) {
......
}
或者是其它的任何表达式.
for循环的定义式包含了循环的初始条件, 结束条件和每次循环结束时运行的表达式, 尽管这些都不是必须的. for循环实际上是对while循环的一种精简, 像下面这样的代码:
for(int i = 0; i < 10; i++) {
std::cout << i << std::endl;
}
其含义等同于:
int i = 0;
while(i < 10) {
std::cout << i << std::endl;
i++;
}
for循环相比while循环少了两行代码, 分别是最上方的初始条件和下方的循环表达式.
在实际代码中有很多需要预先定义初始条件和每次循环时运行的表达式的情况, 比如说遍历数组. 这时使用for循环表示的代码会比while更为精简.
但是也有很多时候循环不需要预先定义这些条件. 比如说最开始的示例代码. 用for循环表示就会是这样:
for(; !isQuit(); ) {
......
}
虽然我们可以省略for循环中的部分甚至全部条件. 但是很显然, 像这种情况, while循环的表示反而比for循环更为易懂.