Введіть перший операнд, операцію та другий операнд: 10/3
Результат: 3.33333
Виконати ще одну операцію (y/n)? y
Введіть перший операнд, операцію та другий операнд: 12+100
Результат: 112
Виконати ще одну операцію (y/n)? n
Відповідь:
#include <iostream>
using namespace std;
int main()
{
double a, b, c;
char sign, yesno;
startprogram:
cout << "Введіть перший операнд, операцію та другий операнд: ";
cin >> a >> sign >> b;
switch(sign)
{
case '+': c = a + b; break;
case '-': c = a - b; break;
case '*': c = a * b; break;
case '/': c = a / b; break;
}
cout << "Результат: " << c << endl;
cout << "Виконати ще одну операцію (y/n)? ";
cin >> yesno;
if (yesno=='y')
goto startprogram;
return 0;
}
В даному прикладі постараюся описати оператор switch. Як бачимо, він бере одну змінну і надає кілька варіантів роботи з нею. Тобто в даному випадку нам потрібно було визначити, який знак математичної операції було введено. Для цього була створена змінна sign, а потім після введення із клавіатури та присвоєння цій змінній значення оператор switch перевірив, який саме знак був уведений, та застосував відповідну математичну операцію до змінних a та b.Зверніть увагу:
- змінна, з якою проводиться опрацювання оператором switch, пишеться в круглих дужках;
- можливе значення (якщо це символьна змінна) записується в одинарних лапках, після нього ставиться двокрапка;
- після блока операцій ставиться крапка з комою;
- якщо потрібно виконати тільки один блок case, після кожного треба поставити оператор виходу break;
case '+': c = a + b; break;не обов'язково мусить бути записаний в одному рядку. Він також може виглядати, як група операцій, обмежених фігурними дужками, як у оператора if:
switch(sign)
{
case '+':
{
c = a + b;
break;
}
case '-':
{
c = a - b;
break;
}
case '*':
{
c = a * b;
break;
}
case '/':
{
c = a / b;
break;
}
}
Немає коментарів:
Дописати коментар