Конструкция за избор : switch

   Оператора switch е удобен да се използва, когато трябва да направим
избор от много варианта и след на основа на този избор компютъра да извършим
определено действие или поредица от действия.
Поради тази причина се нарича още оператор за многовариантен избор. Действието на
switch може да се замени и с вложени оператори if , но не е
необходимо когато има създаден оператор за това.Основно се използва за създаване
на менюта, калкулатори и т.н.

Синтаксис :
switch (x)
   {
      case kонстанта 1:
         оператор или поредица от оператри;
      break;
      case kонстанта 2:
         оператор или поредица от оператри;
      break;
      case kонстанта 3:
         оператор или поредица от оператри;
      break;
      .
      .
      .
      default :
      Оператори по подразбиране;
   }
  x - целочислена или знакова константа;
  константа 1 - ако х съвпада константа 1 се изпълняват операторите до break;
  константа 2 - ако х съвпада константа 2 се изпълняват операторите до break;
  константа 3 - ако х съвпада константа 3 се изпълняват операторите до break;
default: oператорите по подразбиране се изпълняват във всеки друг случай, когато х
и константите не съвпадат.
Програмата се изпълнява до оператора break, sлед като го достигне програмата прескача
и продължава изпълнението си след затварящата фигурна скоба на оператора switch .
Оператора default не е задължителен.

Пример 1 : Въвеждаме 1,2 или 3, ако е "да" изписвамe числото на английски език
във всеки друг случай "I do not know...." .

#include <iostream> //for Code Blocks
using namespace std;
int main()
   {
       int a;
       cout<<"a=";
       cin>>a;
       switch(a)
         {
          case 1:cout<< "One";break;
         case 2:cout<< "Two";break;
          case 3:cout<< "Three";break;
          default : cout<< "I do not know....";
         }
       return 0;
   }


Пример 2 : Въвеждаме число между 1 и 7. Програмата извежда съответния ден на английски език
във всеки друг случай "I do not know...." .

#include <iostream> //for Code Blocks
using namespace std;
int main()
{
int a;
cout<< "I return you day of the week"<< endl;
cout<< "Imput number between 1-7:";
cin>> a;
switch(a)
{
case 1:cout<< "Monday"; break;
case 2:cout<< "Tuesday"; break;
case 3:cout<< "Wednesday"; break;
case 4:cout<< "Thursday"; break;
case 5:cout<< "Friday"; break;
case 6:cout<< "Saturday"; break;
case 7:cout<< "Sanday"; break;
default : cout<< "I do not know....";
}
return 0;
}


Пример 3 : Въвеждаме число между 1 и 9 програмата извежда
четно или нечетно е числото.

#include <iostream> //for Code Blocks
using namespace std;
int main()
    {
       int a;
       cout<<"Input number between 1 and 9 =>";
       cin>>a;
       switch(a)
          {
             case 1:
             case 3:
             case 5:
             case 7:
             case 9:cout<< " odd ";break;
             case 2:
             case 4:
             case 6:
             case 8:cout<< " even ";break;
          }
       return 0;
    }


Когато програмата достигне case 1: продължава своето изпълнение достига до case 3:
не прави нищо ,продължава до case 5 и т.н. , при case 9: извежда "odd". Това съопщение се отнася за всички константи 1,3,5,7,9.


Пример 4 : Програма, чрез която въвеждаме две числа. След това можем да изберем операциите с тях: "+" - събиране, "-" - изваждане, "*" - умножение, "/" - деление.
Във всеки друг случай извежда: "I do not know...." .

#include <iostream> //for Code Blocks
using namespace std;
int main()
{
double a,b;
char c;
cout<< "a="; cin >>a;
cout<< "b="; cin >>b;
cout<< "Input action (+ , - , * , / ) ==> "; cin >>c;
switch(c)
{ case '+':cout<< a<< c<< b <<"="<< a+b ;break;
case '-':cout<< a<< c<< b <<"="<< a-b ;break;
case '*':cout<< a<< c<< b <<"="<< a*b ;break;
case '/':
if(b!=0) cout<< a<< c<< b <<"= "<< a/b ;
else
cout << "Devision by 0"; break;
default : cout<< "I do not know....";
}
return 0;
}

Благодаря за вниманието Ви !