即使在while循环中返回错误的值,我的程序也不会退出。我该怎么办?我刚刚开始编程,无法弄清楚。我已经用Google搜索了答案并复制了教程,但仍然无法正常工作。我假设存在一些冲突的代码或语法错误,但找不到。请帮忙。
using namespace std;
int power(int baseNum, int powNum){
int result = 1;
for(int i=0; i<powNum; i++){
result = result * baseNum;
}
return result;
}
int main() {
char restart;
while(restart = 'r')
{
int numb1;
int numb2;
char op;
cout << "Enter the first number: ";
cout << endl;
cin >> numb1;
cout << "Enter operator: ";
cout << endl;
cin >> op;
cout << "Enter the second number: ";
cout << endl;
cin >> numb2;
switch(op){
case '+':
cout << "Sum = " << numb1 + numb2 << endl;
break;
case '-':
cout << "Difference = " << numb1 - numb2 << endl;
break;
case '*':
cout << "Product = " << numb1 * numb2 << endl;
break;
case '/':
cout << "Quotient = " << numb1 / numb2 << endl;
break;
case '^':
cout << "Result = " << power(numb1, numb2) << endl;
break;
default:
cout << "Error: Invalid Operator!" << endl;
}
cout << "Press [R] to restart." << endl;
cin >> restart;
}
cout << "the end" << endl;
return 0;
}
答案 0 :(得分:-1)
在循环条件下使用restart = 'r'
时,它首先将重新启动分配为'r',然后将其评估为true。
在c ++中,除0以外的所有整数均计算为true,并且由于“ r”的ascii代码不为0,因此它将返回true。
您必须使用==运算符进行比较,=必须使用赋值。
答案 1 :(得分:-1)
错误在这里:while(restart = 'r')
应该是while(restart == 'r')