switch语句C++ - 错误C2046:非法的情况下,错误C2043:非法断点
问题描述:
#include <iostream>
#include <string>
using namespace std;
//void multiply(int b);
int main()
{
float total = 0;
float b = 0;
cout << "Enter number: " << endl;
cin >> b;
char TorD;
cout << "Would you like to times (*), divide (/), add (+) or minus (-) this number?" << endl;
cin >> TorD;
switch (TorD)
case '*' :
{
int c=0;
cout << "by how many?" << endl;
cin >> c;
total = b * c;
cout << b << " * " << c << " = " << total << endl;
}
break;
case '/' :
{
int c=0;
cout << "by how many?" << endl;
cin >> c;
total = b/c;
cout << b << "/" << c << " = " << total << endl;
}
break;
case '+' :
{
int c=0;
cout << "by how many?" << endl;
cin >> c;
total = b + c;
cout << b << " + " << c << " = " << total << endl;
}
break;
case '-' :
{
int c=0;
cout << "by how many?" << endl;
cin >> c;
total = b - c;
cout << b << " - " << c << " = " << total << endl;
}
break;
default:
cout << "You did not correctly enter /, *, +, or - !!" << endl;
//multiply(b);
system("pause");
return 0;
}
答
你错过了switch (TorD)
后开括号,所以“休息”是任何语句外,从(即休息有突破在一个循环或开关内部,所以它有一些东西可以打破)。 switch语句应该如下所示:
switch (TorD) {
case '*': {
// ...
}
break;
case '/': {
// ...
}
break;
// ...and so on.
}
答
您在切换后忘记了case语句周围的大括号。
答
您需要括号为交换机:
switch (...)
{ // your forgot this
...
} // and this
在猜测,匹配的右括号应该去'//乘法(二)'注释以上。 – 2010-05-09 05:11:25