for C循环使用枚举

in1*_*t3r 2 c++ enums pascal for-loop

我在尝试为C++中的每个循环制作时遇到问题.我不确定这是否可能在C++中如果我仍然不知道这样做.

我有一个简单的问题用帕斯卡写的,它找到了一年中的一天,当时是星期五13或星期六25没有遇到哪一天.

在pascal我有这样的代码:

{First I declare types}
type
    months = (January, February, March, April, May, June, July, August, September, October, November, December);
...
{Then I declare variable for months}
var
    m: mesec;
...
{Then I can declare for loop that will loop over months}
for m:= januar to december do
...
Run Code Online (Sandbox Code Playgroud)

在python中也可以使用类似的方法为每个循环执行枚举.我的问题是:

在C++中有没有任何方法可以为枚举做甚至循环?

我知道这可能看起来像一个乞讨者的问题,但我尝试了几种不同的方法来做它不起作用.不编译.

And*_*rey 5

如果枚举值是连续的,您可以在c ++中执行以下操作

enum Months
  {
  January,
  February,
  // etc...
  December,
  Last
  };

for (int month = January; month != Last; ++month)
  {
  // do stuff
  }
Run Code Online (Sandbox Code Playgroud)

  • 但前提是枚举具有连续值。 (2认同)