C++ 为什么不是';我的陈述工作时不做
你能修好这个程序吗。这不会发生C++ 为什么不是';我的陈述工作时不做,c++,while-loop,C++,While Loop,你能修好这个程序吗。这不会发生 int main() { using namespace std; int x, y, z, a; cout << "Please enter a number" << endl; cin >> x; cout << "Please enter another number" << endl; cin >> y; cout <<
int main()
{
using namespace std;
int x, y, z, a;
cout << "Please enter a number" << endl;
cin >> x;
cout << "Please enter another number" << endl;
cin >> y;
cout << "What do you want to do with these numbers?" << endl;
cout << "1 = +" << endl;
cout << "2 = -" << endl;
cout << "3 = *" << endl;
cout << "4 = /" << endl;
cin >> a;
do {
z = add(x, y);
} while (a == 1);
do {
z = sub(x, y);
} while (a == 2);
do {
z = mul(x, y);
} while (a == 3);
do {
z = dis(x, y);
} while (a == 4);
cout << z;
return 0;
}
intmain()
{
使用名称空间std;
int x,y,z,a;
cout x;
库蒂;
cout您的代码正在进入一个无限循环,请这样修改它
int main()
{
using namespace std;
int x, y, z, a;
do
{
cout << "Please enter a number" << endl;
cin >> x;
cout << "Please enter another number" << endl;
cin >> y;
cout << "What do you want to do with these numbers?" << endl;
cout << "1 = +" << endl;
cout << "2 = -" << endl;
cout << "3 = *" << endl;
cout << "4 = /" << endl;
cin >> a;
switch(a)
{
case 1:
z = add(x, y);
break;
case 2:
z = sub(x, y);
break;
case 3:
z = mul(x, y);
break;
case 4:
z = dis(x, y);
break;
}
cout << z;
} while( 1 >= a <= 4)
return 0;
}
intmain()
{
使用名称空间std;
int x,y,z,a;
做
{
cout x;
库蒂;
cout无论您输入哪个选项,它都将进入do while循环,并且永远不会退出,因为条件将始终得到满足。例如,如果我输入1,它将进入:
do {
z = add(x, y);
} while (a == 1);
由于a始终为1,它将永远不会退出此操作。其他条件也是如此。相反,您可以使用switch语句。类似于:
switch(a) {
case 1 : z = add(x, y);
break;
case 2 : z = sub(x, y);
break;
case 3 : z = mul(x, y);
break;
case 4 : z = div(x, y);
break;
default : cout<<"Please choose a valid option to proceed.";
}
cout << z;
return 0;
声明:
while( 1 >= a <= 4)
[括号仅为清晰起见,您可以删除两组内部括号]@PSR-Huh?我不明白。请提供更多详细信息。您的循环不会修改a
。因此,如果它进入其中一个循环,它将永远不会出来。您可以使用开关吗statement@PSRLokoko建议使用下面的switch语句,但是不,我不能使用它。为什么不使用switch语句呢?如果我使用switch语句,你不需要那么多nts。这就是为什么会有一个switch case。谢谢你的回答。它确实帮了我的忙,但是如果我真的想使用do while语句,有什么方法可以使用它吗?如果你真的想保留旧代码并避免无限循环,试试这个do{z=add(x,y);a=5;}while(a==1);我会让它更漂亮一点。@Premsuraj谢谢,我想学习如何扭曲代码。谢谢!这个switch语句很酷。我将对它进行一点尝试。另外,我注意到您使用了div(x,y),但是,我无法使用div,我只被允许使用dis。所以在我的代码中,它是dis(x,y).这是什么原因造成的?是div忙还是什么?可能是输入错误:)请您将ans标记为正确。如果您的问题已解决?tnks。
while( 1 >= a <= 4)
while( (1 >= a) <= 4);
while ( (1 >= a) && (a <= 4) );