.. 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`