for
循环和while
循环有什么区别?
我不是在询问语法,也不是在循环是退出控制循环的情况下如何工作或循环。
我需要知道的是,必须有一个创建for循环和while循环的原因,如果完成的过程相同,那么就不需要另一个了,我正在寻找这个原因
并且不包括do while
,我所说的是while
,尽管do while
是一段时间的一部分。
答案 0 :(得分:1)
for
只是语法糖了一段时间,如果不是说两者都可以使用goto
语句以及许多其他语言构造来实现。
历史原因是使程序代码看起来更易于阅读。
答案 1 :(得分:0)
专门针对C ++语言:
基本上是这样:
int i;
for (i = 0; i < 10; i++)
{
printf("%d\n", i);
}
可以这样写,这是严格等效的,但可读性可能较低:
int i = 0;
while (i < 10)
{
printf("%d\n", i);
i++;
}
但是可以在for
语句中声明循环控制变量,该语句给出了非常紧凑的代码:
for (int i = 0; i < 10; i++)
{
printf("%d\n", i);
}
但是对于while
来说,如果循环变量的范围仅限于循环本身,则不能具有等效的功能:
可能是这样的,这是非法的C ++:
while (int i < 10)
{
printf("%d\n", i);
i++;
}
您可以改写为:
{
int i = 0; while (i < 10)
{
printf("%d\n", i);
i++;
}
}
但是正如您所看到的那样,它很麻烦并且不易读。
顺便说一句,您可以像这样写同样的for
循环,这真的很丑:
int i = 0;
startfor:
if (!(i < 10)) goto endfor;
printf("%d\n", i);
i++;
goto startfor;
endfor:
;
答案 2 :(得分:0)