Использование перечисления в C++

Область видимости переменных в C++ Программирование и разработка

Определяемый пользователем тип данных объявляется с помощью перечисления, содержащего набор констант. Это упрощает чтение кода и управление им. Ключевое слово enum используется для определения перечисления. Конкретный набор значений определяется перечислением. Значения, которые используются в перечислении, называются счетчиками. Значения перечисления можно легко проанализировать и использовать в операторе switch. В этом руководстве были показаны различные варианты использования перечисления в C ++.

Синтаксис:

Синтаксис объявления перечисления приведен ниже. Перечисление используется ключевое слово, чтобы объявить тип данных перечисления, и имена перечислений значений разделены запятой (,). Кроме того, значение по умолчанию для перечисления начинается с 0.

enum enum-type-name { v1, v2, v3…..vn };

Пример 1: преобразование числа в значения перечисления

Способ преобразования любого числового значения в значение перечисления показан в следующем примере. В коде объявлено перечисление из 12 элементов. У пользователя будет взято целочисленное значение. Если входное значение находится в пределах от 0 до 11, то значение будет преобразовано в значение перечисления. Далее позиция месяца будет установлена ​​на основе значения перечисления, а форматированная строка будет напечатана позже:

//Include necessary library
#include <iostream>
using namespace std;

int main()
{
//Declare the enum
enum Month { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec };
//Declare necessary variables
Month enumVar;
string mVal, pos = «th»;
int mNum;

//Take any integer value from the user
cout <> mNum;
//Check the input
if(mNum >=0 && mNum <=11)
{
//Convert the number into enum
enumVar = (Month)mNum;

if (enumVar+1 == 1)
pos = «st»;
else if(enumVar+1 == 2)
pos = «nd»;
else if(enumVar+1 == 3)
pos = «rd»;
cout << «The « << enumVar + 1 << pos <<» month of the year.» << «\n«;

}
else
cout << «Invalid number.»;
return 0;
}

Выход:

Следующий вывод появится после выполнения вышеуказанного кода, если в качестве входного значения будет выбрано 6:

преобразование числа в значения перечисления

Пример 2: преобразование значений перечисления в строку

В предыдущем примере был получен доступ к значению переменной enum. Однако, если вы хотите напечатать конкретный текст для определенного значения перечисления, вам необходимо использовать условный оператор. Способ преобразования значения перечисления в строку с помощью оператора case case показан в следующем примере. Перечисление из 7 элементов было объявлено в коде, где имена перечисления являются именами 7-дневных дней. После ввода от 0 до 6 значение соответствующего значения перечисления будет преобразовано в название дня недели с помощью оператора switch. Конвертированное значение будет напечатано позже.

//Include necessary library
#include <iostream>
using namespace std;

//Declare the enum
enum Weekdays { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };

/*
The function will convert the enum values
into the string value
*/

void convert_to_string(Weekdays wVal)
{
string weekday;
switch(wVal) {
case Sunday:
weekday = «Sunday»;
break;
case Monday:
weekday = «Monday»;
break;
case Tuesday:
weekday = «Tuesday»;
break;
case Wednesday:
weekday = «Wednesday»;
break;
case Thursday:
weekday = «Thursday»;
break;
case Friday:
weekday = «Friday»;
break;
case Saturday:
weekday = «Saturday»;
}

cout << «The weekday name is « << weekday << «\n«;

}

int main()
{
//Declare necessary variables
Weekdays enumVar;
string wVal;
int mNum;

//Take any integer value from the user
cout <> mNum;
//Check the input
if(mNum >=0 && mNum <=6)
{
enumVar = (Weekdays)mNum;
convert_to_string(enumVar);
}
else
cout << «Invalid number.»;

return 0;
}

Выход:

Следующий вывод появится после выполнения вышеуказанного кода, если 3 будет принято в качестве входного значения:

преобразование значений перечисления в строку

Пример 3: Установите разные значения для Enum

Ранее упоминалось, что начальное значение по умолчанию для перечисления равно 0. Способ объявления перечисления — это определение каждого значения отдельно и доступ к конкретному значению, как показано в следующем примере. В коде объявлено перечисление из 5 элементов, где каждому элементу присвоено непоследовательное значение. Значение «Синий» будет напечатано позже:

//Include necessary library
#include <iostream>

using namespace std;

int main() {

//Declare the enum
enum colors { Red = 10, Green = 30, Blue = 20, White = 40, Black = 50};

//Declare enum variable with value
colors enumCol = Blue;

//Print the value of the enum
cout << «The value of ‘Blue’ is : « << enumCol << «\n«;

return 0;
}

Выход:

После выполнения вышеуказанного кода появится следующий вывод:

После выполнения вышеуказанного кода появится следующий вывод

Пример 4: Подсчитайте размер Enum

Способ подсчета размера перечисления показан в следующем примере. В коде объявлено перечисление из 5 элементов. Переменная счетчика использовалась для подсчета общего количества элементов перечисления. Цикл «for» использовался для перебора значений перечисления от начала до конца и увеличения значения переменной счетчика на единицу в каждой итерации.

//Include necessary library
#include  <iostream>

using namespace std;

int main()
{
//Declare the enum
enum marks {CT, Attendence, Assignment, Mid, Final };
//Initialize the counter variable
int counter = 1;

/*
Iterate the values of the enum using loop
to count the total number of elements of the enum
*/

for(int i = CT; i < Final; i++)
{
counter++;
}

cout << «Total number of elements is: « << counter << «\n«;
return 0;
}

Выход:

После выполнения вышеуказанного кода появится следующий вывод:

Подсчитайте размер Enum

Заключение

Перечисление можно использовать для решения различных типов задач программирования на C ++. Цель использования перечисления описана здесь на различных примерах. Я надеюсь, что новые программисты на C ++ смогут понять использование перечисления и правильно применить его в своем коде после прочтения этого руководства.

Читайте также:  Остается ли C++ хорошим языком для изучения в 2022 году?
Оцените статью
bestprogrammer.ru
Добавить комментарий