请忽略此代码的上下文。这个想法是
名为shop()
的函数将采用两个参数
(money_in_pocket
,age
)并确定这些值是否会
让他们进入劳力士商店。但是,即使
参数符合if语句中的要求
shop()
,程序继续输出“ Leave!”-
意思是离开商店。
您可能已经注意到,我是该语言的新手,所以任何 帮助将不胜感激。
我尝试使参数远远大于if
声明要求他们成为。输出为“ leave!”,因此
我尝试了不符合要求的参数,
显示了相同的输出...
#include <iostream>
using namespace std;
class rolex{
public:
bool shop(int x, int y){
if((x >= 5000 && y>= 18)||(x>=5000 && y<18)){
bool enterence = true;
}else{
bool enterence = false;
};
return enterence;
}
private:
bool enterence;
};
int main()
{
rolex objj;
if( objj.shop(5000, 18) == true){
cout<<"you may enter"<<endl;
}else{
cout<<"LEAVE"<<endl;
}
return 0;
}
答案 0 :(得分:5)
在if语句中
if((x >= 5000 && y>= 18)||(x>=5000 && y<18)){
bool enterence = true;
}else{
bool enterence = false;
};
您声明了两个退出if语句后将不活动的局部变量。
因此,数据成员rolex::enterence
尚未初始化,并且具有不确定的值。
将if语句更改为
if((x >= 5000 && y>= 18)||(x>=5000 && y<18)){
enterence = true;
}else{
enterence = false;
};
考虑到if语句中的条件等于
if( x >= 5000 ){
您可以只写而不是if语句
enterence = x >= 5000;
或
rolex::enterence = x >= 5000;
答案 1 :(得分:0)
这是对程序的简单编辑,可以按预期工作:
#include <iostream>
using namespace std;
class rolex {
private:
bool entrance;
public:
bool shop(int x, int y) {
if(x >= 5000 && y>= 18) {
entrance = true;
} else {
entrance = false;
}
return entrance;
}
};
int main() {
rolex obj;
if(obj.shop(5000, 18) == true) {
cout << "you may enter" << endl;
} else {
cout << "LEAVE" << endl;
}
return 0;
}