枚举值的疑问?
有没有可能对枚举值进行算术运算?
enum Type{Zero=0,One,Two,Three,Four,Five,Six,Seven,Eight,Nine};
main()
{
enum Type Var = Zero;
for(int i=0;i<10;i++)
{
switch(Var)
{
case Zero:
/*do something*/
case One:
/*Do something*/
.....
}
Var++;
}
}
(我知道这个增量是不可能的,但是我们是否可以将这个变量命名为 Var 增量?)
Is there any possible way to do any arithmetic operations on enum values?
enum Type{Zero=0,One,Two,Three,Four,Five,Six,Seven,Eight,Nine};
main()
{
enum Type Var = Zero;
for(int i=0;i<10;i++)
{
switch(Var)
{
case Zero:
/*do something*/
case One:
/*Do something*/
.....
}
Var++;
}
}
(I know that this increment is not possible, but is there anyway by which we can have this variable named Var increment?)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
当然,您可以直接转换为
int
并返回:You can just cast to
int
and back, of course:是的,您可以在算术运算中使用枚举类型。尝试以下代码。
您可以替换您正在使用的 for 循环,
一般来说,我不容忍这种滑稽的枚举,但对于枚举元素是整数的特殊情况,它是有效的。
Yes, you can use enum types in arithmetic operations. Try the following code.
You could replace the for loop that you are using with,
I do not condone such antics for enums in general, but for your particular case where the elements of the enum are integers, it works.