This week's book giveaway is in the Design forum.
We're giving away four copies of Design for the Mind and have Victor S. Yocco on-line!
See this thread for details.
Win a copy of Design for the Mind this week in the Design forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Enum constants in Switch

 
Prithvi Sehgal
Ranch Hand
Posts: 774
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,

I have a very stupid doubt in using enums in switch. I am really confused though.
This is a sample of code from K&B chapter 5

The output in this case is green. I read somewhere specification says that, if you have to use enum's as case
constant, you must specify them without fully qualified name. I am puzzled how compiler is interpreting red and
green and blue in this case as a case label.

Hope someone can clarify this confusion.

Thanks,
 
Larry Chung
Ranch Hand
Posts: 247
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
From one perspective, the "red and green and blue" are interpreted by the compiler as legal enum constants because the variable c is of enum type Color. If you create another enum such as Direction and try it like so:


then the compiler will report that red and green and blue "cannot be resolved or is not a field" because the switch is now on Direction, not Color.
 
Mykola Kurutin
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Prithvi Sehgal wrote:

The output in this case is green.


Here is the actual output:
I am green
I am blue
Blah blah


Don`t forget about break; at the end of each case.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic