链式 if-else 不起作用 (C++)

chained if-else not working (C++)

我是初学者,在使用链式 if-else 语句时遇到了问题。当我运行这个程序,我输入我select哪个项目,它总是输出"Invalid entry."。为什么它在 if 语句中等于它时不执行正确的功能?

谢谢,

#include <iostream>
using namespace std;

int sum(int int1, int int2 ){

    return int1 + int2;

}

int difference( int int1, int int2 ){

    return int1 - int2;

}

int product( int int1, int int2 ){

    return int1 * int2;

}

int quotient( int int1, int int2 ){

    return int1 / int2;

}

int main(){

cout << "\nWelcome to the calculator.\n\n";
cout << "Please enter two numbers.\n\n";

int a;
int b;
cin >> a >> b;

cout << "What would you like to do with these numbers?\nHere are your options: add, subtract, multiply, or divide.\n\n";

string add;
string subtract;
string multiply;
string divide;

string choice;
cin >> choice;


if( choice == add )
    cout << sum( a, b );
else if ( choice == subtract )
    cout << difference( a, b );
else if ( choice == multiply )
    cout << product( a, b );
else if ( choice == divide )
    cout << quotient( a, b );
else 
    cout << "Invalid entry.\n"; 

return 0;

}

用这个语句:

string add;

您正在创建一个名为 add 的字符串变量,但尚未为其分配值。因此,当您将变量与用户输入进行比较时,程序会将 add 视为值 null,这不等于用户输入的任何内容。

您想为其赋值:

string add = "add";

和所有其他字符串相同。

并比较std::string:

if(choice == add)

另一种方法,就是直接用常量字符串检查它:

if(choice == "add"){
  //do something
}else if(choice == "subtract") 
  //do something else