1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
.. highlight:: cpp
.. _lang-enum:
``enum``
========
The ``enum`` keyword is used to specify an enumeration type. An
enumeration type is a type whose values are taken from a specified,
fixed list of constant values.
Example
-------
Here's an example defining an enumeration type called ``weather``,
which has values ``HOT``, ``COMFY``, and ``COLD``::
enum weather {HOT, COMFY, COLD};
Once you've defined this type, you can create variables of type
``weather``, in the same way you would with an :ref:`int <lang-int>`::
// create a weather variable named theWeather, with value COMFY:
weather theWeather = COMFY;
Enumeration types are useful within :ref:`switch statements
<lang-switchcase>`. If you know that an argument is of an enumeration
type, you can make ``case`` statements for all of that type's possible
values, so you know you won't miss anything::
void describeWeather(weather currentWeather) {
switch(currentWeather) {
case HOT:
SerialUSB.println("it's hot out");
break;
case COMFY:
SerialUSB.println("it's nice today");
break;
case COLD:
SerialUSB.println("it's freezing!");
break;
}
}
Such a ``switch`` statement would need no :ref:`default
<lang-switchcase-default>`, since we know that ``currentWeather`` must
be either ``HOT``, ``COMFY``, or ``COLD``.
See Also
--------
- :ref:`lang-switchcase`
|