是";对于";循环只是一种简单的使用方式;而循环";有一个计数变量

本文关键字:quot 循环 方式 变量 有一个 对于 简单 一种 | 更新日期: 2023-09-27 18:01:01

您可能混淆了主题。让我来解释一下。

在大多数计算语言中,我们都有for和while循环。但在我的示例中,我将在c#中声明循环。

当你像这样贴花for循环和while循环时。

1.对于环路

 for(i=0;i<10;i++)
   {
     //do something
   }

2.While loop

 int i=0;
 while(i<10)
   {
     //do something
     i++;
   }

从2个循环中。当涉及到同谋者时,他们会同谋同样的事情吗?(除了在while循环外声明的int i。(如果没有,哪一个更好或更有效?

提前感谢

是";对于";循环只是一种简单的使用方式;而循环";有一个计数变量

问题的简单答案是"是的,它们会编译成相同的代码。"有时。这将取决于语言和编译器。就C#而言,生成的代码中的任何差异都很小,以至于在运行时间方面都无关紧要。

任何for循环都可以被重新编码为while,反之亦然。例如,这个while循环:

bool done = false;
while (!done)
{
    // do stuff
}

可以重新编码为for:

for (bool done = false; !done;)
{
    // do stuff
}

CCD_ 5和CCD_。有时,我们更容易想到遍历列表,这是for语句的基础(尽管肯定不是唯一的用途(。其他时候,我们想在某些条件保持为真的情况下做一些事情——因此我们使用while。有些语言有一个until(或者,在C中是do ... while(,它将条件置于末尾。

这些都是构建解决方案的不同方式。这三种类型的循环可以互换,通常难度很小,但你通常会发现其中一种比其他两种更清楚地表达了你的意图。

对于这两个代码部分,生成的中间语言可能看起来非常相似。For的设计目的是对索引对象进行迭代,所以如果你想做到这一点,那么就使用它。但你仍然可以用while做同样的事情。

从性能的角度来看,没有什么区别。此外,如果您的性能受到如此低水平的影响,您已经排除了任何其他主要的性能问题,这反过来又可以深入了解IL在这里的工作方式。