×
Traktatov.net » Освой самостоятельно С++ за 21 день » Читать онлайн
Страница 31 из 448 Настройки

Листинг 3.7. Использование перечисления 

1: #include

2: int main()

3: {

4:    enum Days { Sunday, Monday, Tuesday,

5:    Wednesday, Thursday, Friday, Saturday };

6:    int choice;

7:    cout << "Enter a day (0-6): ";

8:    cin << choice;

9:    if (choice = Sunday || choice == Saturday)

10:   cout << "\nYou're already off on weekends!\n";

11:   else

12:   cout << "\nOkay, I'll put in the vacation day.\n";

13:   return 0;

14: }


Результат:

Enter a day (0-6): 6

You're already off on weekends!


Анализ: В строке 4 определяется перечисление DAYS с семью константными значениями. Все они образуют возрастающую последовательность чисел, начиная с нуля; таким образом, значение вторника (Tuesday) равно 2.

Пользователю предлагается ввести значение между 0 и 6. Он не может ввести слово Sunday, поскольку в программе не предусмотрен перевод символов в значение перечисления. Но можно проверить введенное пользователем значение, сравнив его с константными значениями перечисления, как показано в строке 9. Использование перечисления облегчает анализ программы. Того же эффекта можно добиться, используя константы целочисленного типа, как показано в листинге 3.8.


Примечание:Для этой и всех небольших программ в данной книге я намеренно не предусматривал включения ряда выражений, которые обычно пишутся для обработки ситуаций, связанных с приемом от пользователя неверных данных. Например, в этой программе отсутствует проверка вводимых чисел, которая должна обязательно присутствовать в настоящей программе и предназначена для предупреждения ввода неразрешенных чисел. Это было сделано намеренно, для того чтобы сэкономить место в книге и сосредоточить ваше внимание только на рассматриваемой в данном разделе теме.

Листинг 3.8. Та же программа, но с использованием констант целочисленного типа

1: #include

2: int main()

3: {

4:    const int Sunday = 0;

5:    const int Monday = 1;

6:    const int Tuesday = 2;

7:    const int Wednesday = 3;

8:    const int Thursday = 4;

9:    const int Friday = 5;

10:   const int Saturday = 6: 11;

12:   int choice;

13:   cout << "Enter a day (0-6): ";

14:   cin << choice;

15:

16:   if (choice = Sunday || choice == Saturday)

17:   cout << "\nYou're already off on weekends!\n";

18:   else

19:   cout << "\nOkay, I'll put in the vacation day.\n";

20:

21:   return 0;

22: }


Результат:

Enter a day (0-6): 6

You're already off on weekends!


Результаты работы этой программы идентичны результатам программы из листинга 3.7. Но в этом варианте все константы (Sunday, Monday и пр.) определены в явном виде и отсутствует тип перечисления Days. Обратите внимание, что программа с перечислением короче и логичнее.

Резюме

На этом занятии рассматривались числовые и символьные переменные и константы, которые в C++ используются для хранения данных во время выполнения программы. Числовые переменные могуг быть либо целыми (char, short и long int), либо вещественными (float и double). Кроме того, они могут быть знаковыми и беззнаковыми (unsigned). Хотя на различных компьютерах все эти типы могуг иметь разные размеры, но на одном компьютере переменные одного и того же типа всегда имеют постоянный размер.