所以我有一个项目,这是我的代码但我在这个代码中有一个问题,而不是只选择一个它选择每个可能的情况所以帮助我,这是代码我也不知道这是怎么发生的即时通讯仍在寻找原因,为什么会发生这种情况,但也许我需要专业的帮助,所以这是代码
#include <iostream>
#include <cmath>
#include <string>
using namespace std;
int main()
{
char one, two, three, four;
double a, b, c, d;
cout << "What do you want to find on the square?" << endl;
cout << "A. Area" << endl;
cout << "B. Side" << endl;
cout << "C. Diagonal" << endl;
cout << "D. Perimeter" << endl;
cin >> one ;
one = toupper(one);
switch (one)
{
case 'A':
{ cout << "What is Given" << endl;
cout << "S. Side" << endl;
cout << "D. Diagonal" << endl;
cout << "P. Perimeter" << endl;
cin >> two;
two = toupper(two);
switch (two)
{
case 'S':
{
cout << "Enter Measure of the side." << endl;
cin >> a;
a= a*a;
cout << "The Answer is " << a << endl;
}
case 'D':
{
cout << "Enter Measure of the diagonal" << endl;
cin >> a;
a= pow( a/sqrt(2), 2);
cout << "The Answer is " << a << endl;
}
case 'P':
{
cout << "Enter measure of Perimeter" << endl;
cin >> c;
c= pow(c/4, 2);
cout << "The Answer is " << c << endl;
}
default :
{
}
}
}
}
return 0;
}
答案 0 :(得分:5)
你需要
break
每个案例之后。像这样:
case 'S':
{
cout << "Enter Measure of the side." << endl;
cin >> a;
a= a*a;
cout << "The Answer is " << a << endl;
break;
}
适用于所有情况。否则它将经历所有案例而不会中断,这就是你的案例中发生的事情
答案 1 :(得分:2)
添加休息时间;在每个switch语句的末尾。
示例:
switch ( a ) {
case b:
// Do something
break;
default:
// Do Something
break;
}
答案 2 :(得分:0)
Switch操作符将在括号内找到的所有情况下搜索切换括号中的任何变量,并在2个变量为==的情况下运行代码。鉴于您只需要分析其中一个案例,必须插入“break”,以便在找到与switch开关操作符的括号中找到的变量相等的case值后,代码将完全保留括号。 / p>
switch (a)
{
case b:
{
...
}
break;
case c:
{
...
}
break;
}
break必须在case括号之外,因为break代码会使线程退出当前运行代码的括号。