【发布时间】:2017-09-17 20:22:23
【问题描述】:
我正在尝试制作一个 switch case 计算器,它将要求一个表达式(例如 2+2)并打印答案,重复该过程直到用户输入“q”。
当用户输入“q”时,我不知道如何让程序结束。下面的程序成功地要求一个表达,给出答案,并要求另一个。但是,当您输入错误的表达式时,它将永远重复默认情况,包括您输入“q”时。
我知道问题与我如何输入变量有关,考虑到操作数是 double 类型,而且 while 循环也有问题,但我想不出任何替代方案,而且似乎找不到其他地方的解决方案。
int main() {
double operand1;
double operand2;
char operation;
double answer;
while (operation != 'q'){
cout << "Enter an expression:""\n";
cin >> operand1 >> operation >> operand2;
switch(operation)
{
case '+':
answer = (operand1 + operand2);
break;
case '-':
answer = (operand1 - operand2);
break;
case '*':
answer = (operand1 * operand2);
break;
case '/':
answer = (operand1 / operand2);
break;
default:
cout << "Not an operation :/";
return 0;
}
cout <<operand1<<operation<<operand2<< "=" << answer<< endl;
}
return 0;
}
【问题讨论】:
-
用 std::getline 读取整行,然后使用 std::regex 解析用户输入。
标签: c++ while-loop switch-statement calculator do-while