gpt4 book ai didi

c++ - C++中bool的if else语句

转载 作者:行者123 更新时间:2023-11-28 00:05:16 24 4
gpt4 key购买 nike

基本上,我有3个功能第一和第二个功能是检查点火是真还是假。第三个功能基本上是检查点火开关是否打开,速度不能大于 65,如果速度大于 65,它会将速度“固定”在 65。而如果点火开关关闭,则速度将为 0。

但是,在我的代码中,我做了一个 if else 语句。当我打印点火开关关闭的部分时,我得到的值是 65。它应该是 0。

我可以知道我的代码有什么问题吗?

car.h

#ifndef car_inc_h
#define car_inc_h
#include <iostream>
#include <string>

using namespace std;

class Car {
bool isIgnitionOn;
int speed;
public:
void turnIgnitionOn();
void turnIgnitionOff();
void setSpeed(int);
void showCar();
};
#endif

汽车.cpp

#include <iostream>
#include <string>
#include "Car.h"

using namespace std;

void Car::turnIgnitionOn() {
this->isIgnitionOn = true;
}

void Car::turnIgnitionOff() {
this->isIgnitionOn = false;
};


void Car::setSpeed(int speed) {

if (isIgnitionOn == true) {
if (speed >= 65) {
this->speed = 65;
}
else {
this->speed = speed;
}
}
else if (isIgnitionOn == false){
this->speed = 0;
}

};


void Car::showCar() {
if (isIgnitionOn == true) {
cout << "Ignition is on." << endl;
cout << "Speed is " << speed << endl;
}
else if (isIgnitionOn == false) {
cout << "Ignition is off" << endl;
cout << "Speed is " << speed << endl;
}


};

main.cpp

#include <iostream>
#include <string>
#include "Car.h"

using namespace std;

int main() {
Car myCar;
myCar.turnIgnitionOn();
myCar.setSpeed(35);
myCar.showCar();

myCar.setSpeed(70);
myCar.showCar();

myCar.turnIgnitionOff();
myCar.showCar();
return 0;
}

最佳答案

speed 永远不会重置为 0。您可以在 turnIgnitionOff 中添加 this->speed=0 这毕竟更合乎逻辑。

关于c++ - C++中bool的if else语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36082815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com