ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 3) онлайн
switch и символьные переменные
Пример PLATTERS показывает механизм работы конструкции switch с использова- нием переменной типа int. Вместо типа int можно использовать также и тип char. Изменим программу ADELSEIF и назовем результат ADSWITCH:
// adswitch.cpp
// приключенческая игра с использованием switch
#include <iostream>
using namespace std;
#include <conio.h> // для getche()
int main()
{
char dir='a';
int x=10,y=10;
while( dir !='\r' )
{
cout << "\nВаши координаты: " << x << ", " << y;
cout << "\nВыберите направление (n,s,e,w): ";
dir = getche(); // ввод переменной
switch(dir) // switch c переменнной dir
{
case 'n': y--; break; // движение на север
case 's': y++; break; // движение на юг
case 'e': x++; break; // движение на восток
case 'w': x--; break; // движение на запад
case '\r': cout << "Выход...\n" ; break; // нажатие Enter
default: cout << "Попробуйте еще\n"; // нажатие других клавиш
} // конец switch
} // конец while
return 0;
} // конец main()
Символьная переменная dir используется в качестве «переключателя» в опе- раторе switch, а константы 'n', 's' и т. д. служат значениями для case-конструкций (обратите внимание на то, что вы можете использовать в switch только целые и символьные типы, но не можете использовать вещественные).
Поскольку case-секции очень невелики по своему размеру, мы записали все операторы каждой секции в одной строке. Кроме того, мы добавили ветвь, выво- дящую сообщение о выходе в случае нажатия клавиши Enter.
12 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
