但在某些特殊情況下,可以實現條件遍歷。
1枚舉類型必須是連續的。
因為枚舉類型支持以下定義:
列舉型別
{
枚舉_0,
ENUM_10 = 10,
ENUM_11
};
這將導致不連續的枚舉類型,無法被遍歷。
2在枚舉類型中人為添加開始和結束標簽。
列舉型別
{
枚舉開始,
枚舉_0,
ENUM_1,
枚舉_2,
枚舉_結束
};
可以看出,在這個枚舉類型中,ENUM_START和ENUM_END是人為添加的。中間的ENUM_0、ENUM_1和ENUM_2是實際的有效數據。當後面需要添加或刪除枚舉元素時,還需要確保ENUM_START和ENUM_END分別為最小值和最大值。
滿足以上兩個條件,就可以做枚舉的遍歷了,參考代碼如下:
int I;
for(I = ENUM _ START+1;我& ltENUM _ ENDi ++)
{
//使用枚舉元素。
}
在這個循環中,I的值是所有有效的枚舉元素值。