#visual-c
#visual-c
Вопрос:
Я пытаюсь создать калькулятор и хочу, чтобы он отображал сообщение об ошибке, если был отправлен математический знак, который не был включен в список.
Мне нужно if
, чтобы в операторе было больше одного условия, и я перепробовал много способов, но ни один из них не сработал. проблема заключается в первом if
утверждении
#include <iostream>
using namespace std;
int main()
{
string sign;
double x;
double y;
string a;
string b;
string c;
string d;
string e;
string f = "addition";
string g = "subtraction";
string h = "multiplication";
string i = "division";
a = "please enter the operation type:";
b = "please enter the first number:";
c = "please enter the second number:";
d = "the answer is:";
e = "thank you for using my calculator";
cout << a << endl;
cin >> sign;
cout << b << endl;
cin >> x;
cout << c << endl;
cin >> y;
Я пытаюсь отобразить сообщение об ошибке, если пользователь вводит другой оператор, но, похоже, ничего не работает
if (sign == f || g || h || i) {
if (sign == f) {
cout << d << endl;
cout << x y << endl;
}
else {
if (sign == g) {
cout << d << endl;
cout << x - y << endl;
}
else {
if (sign == h) {
cout << d << endl;
cout << x * y << endl;
}
else {
if (sign == i) {
cout << d << endl;
cout << x / y << endl;
}
}
}
}
}
else {
cout << "error please enter a viable option:";
}
cout << e << endl;
return 0;
}
Комментарии:
1.
if (sign == f || g || h || i)
не делает того, что вы думаете; Я ожидаю, что он вообще не компилируется. Я подозреваю, что вы имели в виду, будет написаноif (sign == f || sign == g || sign == h || sign == i)
2. @IgorTandetnik
switch()
оператор был бы лучше, имо.3. @Dai Попробуйте, посмотрите, сможете ли вы заставить его скомпилироваться.
4. @IgorTandetnik Сумасшедший, я на мгновение подумал, что это Java или C #. В этом случае an
unordered_map
подойдет 😉