我是 C++ 新手。我尝试运行一个有两个输入的控制台应用程序。 这是我的代码
#include <iostream>
#include <string>
using namespace std;
int main(){
string ID;
double sal_val,com;
cout<<"Insert fruit ID"<<endl;
cin >> ID;
cout<<"You entered"<<ID<<endl;
cout<<"Insert sale Value"<<endl;
cin >> sal_val;
cout<<"You entered"<<sal_val<<endl;
if(ID =="A"||"a"){
com=(sal_val*4.5)/100;
cout<<"Commission for Apple Rs. " <<com<<endl;}
else if(ID =="B"||"b"){
com=(sal_val*5)/100;
cout<<"Commission for Banana Rs. " <<com<<endl;}
else if(ID =="O"||"o"){
com=(sal_val*5.5)/100;
cout<<"Commission for Orange Rs. " <<com<<endl;}
else if(ID =="G"||"g"){
com=(sal_val*6)/100;
cout<<"Commission for Grapes Rs. " <<com<<endl;}
}
当我运行此命令时,无论我为“ID”指定什么值,它都会给出第一个 if 语句的结果。每次只运行这两行
com=(sal_val*4.5)/100;<br/>
cout<<"Commission for Apple Rs. " <<com<<endl;
感谢您的建议。
最佳答案
您应该编写 if(ID =="A"|| ID == "a,而不是
因为你的语句:if(ID =="A"||"a"){
"){if(ID =="A"||"a"){
表示 if (ID 是“A “ 或“a”的 ascii)。 “a”的ascii大于0,这意味着它在if语句中将被读取为true
值。这就是为什么你的语句将与 if(ID ==A"|| true){
相等,这就是为什么只有这条语句会被执行。
关于C++ if else if 不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42849714/