正如标题所示,哪些语言支持while或do / while循环使用自动迭代索引?
换句话说,[while]
或[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]
循环具有很大的灵活性,但每种循环最适合某些场景。但是,它使得某些场景非常奇怪,例如将迭代器与索引器组合在一起。
这并不是一个开放式的问题。简单地说,任何语言都支持这样的结构,如果没有,嗯,不能在这里问,因为这将使它开放结束
UPDATE :我确实意识到嵌套这样的循环会产生的复杂性,但我确信这可以通过一些聪明的命名约定来规避。
我想到的但没有提到的是在C#的情况下使用聪明的lambda表达式。这不是对语言的补充,而只是一个扩展(我认为它只适用于反射友好的平台,如.NET和Java)。
答案 0 :(得分:1)
在ruby中:array.each_index{|i| print i }
将遍历每个索引。
答案 1 :(得分:1)
从我的记忆中,Forth中的DO
... LOOP
字支持了那种。
获取当前循环索引的单词是I
(显然!),而下一个外循环的单词是J
。
因此
10 1 DO I . 32 EMIT LOOP NL
会打印:
1 2 3 4 5 6 7 8 9 10