链式 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
我是初学者,在使用链式 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