2

我试图找出一些问题的答案以及 C++ 中的 While 和 For 循环之间的一些区别以及原因?到目前为止,这是我想出的。根据http://www.cplusplus.com/doc/tutorial/control/

while 是:while(表达式)语句

而for是:for(初始化;条件;增加)语句;

所以在 for 循环中,初始化是我们声明要在条件语句中使用的变量的地方,对吗?

条件是在什么条件下,会循环。

然后增加是我们决定对变量增加或减少多少的地方。

在while循环中,表达式也是一个条件,对吧?还是在这种情况下它们是完全不同的术语?

我注意到,使用 for 循环,如果我愿意,我可以将增加部分移动到语句中,但我不能在 While 循环中增加括号或在括号中声明变量(for 循环中的初始化内容) . 我有点好奇这是什么原因?

无论如何,我在谷歌的帮助和人们的建议下自学,我对编程几乎是全新的,所以请放轻松,我还不了解行话或复杂的答案. :) 如果您需要更多信息或任何事情,请告诉我。

4

3 回答 3

6

for循环比真正的语言构造更方便。例如,一个for循环可以很容易地扩展为一个while循环。

for ( c=0; c<10; c++ ) 相当于

c=0;
while ( c<10 ) {
  // some statements
  c++;
}

此外,for循环不限于简单的数字运算,您可以执行更复杂的操作,例如(C 语法):

// a very basic linked list node
struct node {
  struct node *next;
};
struct node; //declare our node

// iterate over all nodes from 'start' node (not declared in this sample)
for ( node=start; node; node=node->next ) {}

它将遍历一个简单的链表。

您还可以有多个初始化程序、条件和语句(取决于语言),例如: for ( c=0, d=5; c<10, d<20; c++, d++ ). 但是我建议不要像这样疯狂的循环,因为它们变得相当混乱。

于 2010-09-25T08:32:17.700 回答
0

for循环中,初始化可以声明变量或为它们赋值,或两者兼而有之。

根据您的编译器,这些变量的范围会有所不同。例如,VC++6.0 会将变量的范围扩展到循环之外,而一种常见的规避方法是可怕的:

#define for if(0){} else for

实际上,for 语法是:

for(初始化;循环条件表达式;循环时要运行的语句)

所有这些都可以留空。

于 2010-09-25T08:21:57.133 回答
0

通常,for 语句用于 forcounter-controlled repetition和 while 语句sentinel-controlled repetition

• 大多数for statements可以用等价表示,while statements如下所示:

参考资料:Java™ 如何编程(早期对象),第十版

于 2017-02-14T11:10:00.557 回答