Switch
Instrukcja switch Składnia instrukcji: switch (wyrażenie){ case wyrażenie_stałe1: ciąg instrukcji dla wariantu 1; break; case wyrażenie_stałe2: ciąg instrukcji dla wariantu 2; break;.... default: ostani ciąg instrukcji; break; } Wykonywanie instrukcji kończy się po napotkaniu instrukcji break, która jest instrukcją skoku i powoduje opuszczenie bieżącej instrukcji switch. * Miejsce etykiety default jest dowolne, ale może ona wystąpić tylko jeden raz. * Może być tylko jedna etykieta z tą sama wartością. * Etykiety wyboru muszą być tego samego, co wyrażenie typu całkowitego.
// program działania #include main(){ char dzialanie; float w,a,b; cout >a; cout >b; cout >dzialanie; switch (dzialanie){ case '+': w=a+b; break; case '-': w=a-b; break; case '/ ': w=a/b; break; case '* ': w=a*b; break; default: cout<<"NIEPOPRAWNY OPERATOR\n"; break; } cout<<a<<dzialanie<<b<<"="<<w<<endl; system ("pause"); }
/* Program Figury poniższy program przerobić na program używający instrukcję switch /* #include main() { const float pi = ; float a, b, h, r, pole, objętość; int nrw; cout << "Program umożliwia obliczenie:" << endl; cout << " 1 - pola prostokąta" << endl; cout << " 2 - pola trapezu" << endl; cout << " 3 - objętości kuli" << endl; cout << " 4 - objętości stożka" << endl<< endl; cout > nrw; if (nrw == 1 ) { cout << "Obliczanie pola prostokąta" << endl; cout << "Podaj długości boków \t" ; cout > a; cout > b; pole = a*b; cout << "Pole prostokąta o bokach" << endl; cout << "a=" << a << " b=" << b << ” wynosi " << pole << endl; }
if (nrw == 2 ) { cout << "Obliczanie pola trapezu" << endl; cout > a; cout > b; cout > h; pole = 0.5*(a+b)*h; cout << "Pole trapezu o podstawach" << endl; cout << "a=" << a << " b=" << b << " i wysokości h=" << h << endl; cout << "wynosi " << pole << endl; } if (nrw == 3 ) { cout << "Obliczanie objętości kuli" << endl; cout > r; pole = (4/3)*pi*r*r*r; cout << "Objętość kuli o promieniu \t” << "r=" << r << endl; cout << "wynosi " << pole << endl; }
if (nrw == 4 ) { cout << "Obliczanie objętości stożka" << endl; cout > r; cout > h; pole = pi*r*h/3; cout << "Objętość stożka o promieniu podstawy" << endl; cout << "r=" << r << " i wysokości h=" << h << endl; cout << "wynosi " << pole << endl; } system("pause"); }
Instrukcje zagnieżdżone switch (rok) { case 2005: cout > litera; switch(litera) { case 'a': cout <<"wpisałeś "<<a; break; case 'b': cout <<"wpisałeś "<<b; break; default: cout <<"zla litera :( \n"; } break; case 2006: cout > litera; switch(litera) { case 'a': cout <<"wpisałeś "<<a; break; case 'b': cout <<"wpisałeś "<<b; break; default: cout <<"zla litera :( \n"; } break; default: cout<<"? NIE TEN ROK :( \n"; }