自从我开始学习编程以来,在我学习的每一种语言中,总是有一个while
循环和for
循环。
while
可以做所有for
循环可以做的事情。两者都执行相同的迭代功能。那么添加for
循环的目的是什么?
使用它们有任何性能差异吗?为什么每种语言都有两个循环?
自从我开始学习编程以来,在我学习的每一种语言中,总是有一个while
循环和for
循环。
while
可以做所有for
循环可以做的事情。两者都执行相同的迭代功能。那么添加for
循环的目的是什么?
使用它们有任何性能差异吗?为什么每种语言都有两个循环?
我假设您正在谈论for
例如 C/C++ 中使用的典型循环。
尽管for
循环总是可以重写为while
循环,但它具有很大的可读性优势:所有与循环相关的属性
可以在一行中捕获。如果您有一个较长的带有while
循环的主体,则整个内容可能不适合您的屏幕尺寸,或者即使它适合您也必须直观地解析代码以查看发生了什么。
本质上,如果适用,for
循环可以更好地捕捉代码的意图。
因为它是使循环“循环”的条件,并且在这两种情况下,条件都是由用户提供的(并且它不是循环构造转换为机器代码的一部分),我怀疑它们作为文档工具以不同的风格存在比什么都重要。但是 for 循环使您能够声明仅在循环期间存在的局部变量:
for (Iterator it = c.begin(); it != c.end(); ++it) {
} // it destroyed here
Ofc 你可以不用所有循环;一个 goto 就足够了
唯一的区别在于代码的可读性,在编译时,for
循环被转换为while
具有先前初始化和后续增量的循环。
for
当我们知道终止条件时使用循环。
while
如果我们不知道终止条件或更好的情况,通常使用循环