An enumerated type is a set of named values. Most of the time, the values are not significant, but items that are in the set itself add meaning to the type. We can use enumerated types to create natural collections or groups of values, as we have seen with card suits and shapes. The switch statement is ideally suited to select and process items within an enumerated type.
An enumerated type, unfortunately, doesn't provide everything we might need to model the real world. For instance, in a deck of cards, each card has both a suit and a face value, two different enumerations. To combine them into a single card object that represents reality more closely, we need another custom data type—structures. We will explore these in the next chapter.