C ++中不同寻常的FOR语句形式

时间:2015-09-15 09:47:13

标签: c++ for-loop

我在数组上经历了this C++ tutorial并遇到了一种不寻常的写for语句的方式(参见第二个循环:for (int elem : myarray)):

#include <iostream>

using namespace std;

int main()
{
  int myarray[3] = {10,20,30};

  for (int i=0; i<3; ++i)
    ++myarray[i];

  for (int elem : myarray)
    cout << elem << '\n';
}

有人可以解释这种写for循环的方式吗?我想它会逐个打印myarray的每个元素,但这种写for语句的方式的一般语法是什么?在什么情况下可以使用它?

2 个答案:

答案 0 :(得分:2)

它应该是基于范围的循环http://www.cplusplus.com/doc/tutorial/control/

答案 1 :(得分:0)

这是一个foreach循环,而不是之前使用的正常for循环,它遍历整个数组。

当您不必(或想要)知道数组的特定索引并且仅关注元素的值时,可以使用此方法。

一般语法适用于( type x:array),其中type是数组的类型(及其中的元素),x是表示数组的特定元素的变量。

Wikipedia还有一篇关于foreach循环的文章,其中包含不同语言的示例。