Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/studb20/public_html/index.php on line 4
 switch и символьные переменные - ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 3) онлайн - Studbook

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В 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.

 

35