正如标题所示,哪些语言支持带有自动迭代索引的 while 或 do/while 循环?
换句话说,一个[while]
or[do/while]
循环自动提供迭代索引,而不必求助于诸如[for]
循环之类的固有索引结构。这对谷歌来说是一个奇怪的问题,它从上下文中提取了结果。
下面以 C# 为例:
int count = 0;
while (count < 10)
{
Console.WriteLine("This is iteration #{0}", count++);
}
与以下虚构循环相反:
while<int> (value < 10)
{
Console.WriteLine("This is iteration #{0}", value); // Or value-- for that matter.
}
我对语言设计和这个问题不太了解。循环具有很大的[for]
灵活性,但每种循环都最适合某些场景。尽管如此,它还是让某些场景非常奇怪,例如将迭代器与索引器结合起来。
这并不是一个开放式的问题。简单地说,是否有任何语言支持这样的结构,如果不支持,嗯,不能在这里问,因为那样会使其开放式
更新:我确实意识到嵌套此类循环会产生复杂性,但我确信可以通过一些巧妙的命名约定来规避它。
例如,在 C# 的情况下,我想到但没有提到的是使用巧妙的 lambda 表达式。这不会是对语言的补充,而只是一个扩展(我认为这仅对反射友好的平台有效,例如 .NET 和 Java)。