Takip koduna sahibim:
if (this->_car.getAbsoluteAngle() <= 30 || this->_car.getAbsoluteAngle() >= 330)
this->_car.edir = Car::EDirection::RIGHT;
else if (this->_car.getAbsoluteAngle() > 30 && this->_car.getAbsoluteAngle() <= 60)
this->_car.edir = Car::EDirection::UP_RIGHT;
else if (this->_car.getAbsoluteAngle() > 60 && this->_car.getAbsoluteAngle() <= 120)
this->_car.edir = Car::EDirection::UP;
else if (this->_car.getAbsoluteAngle() > 120 && this->_car.getAbsoluteAngle() <= 150)
this->_car.edir = Car::EDirection::UP_LEFT;
else if (this->_car.getAbsoluteAngle() > 150 && this->_car.getAbsoluteAngle() <= 210)
this->_car.edir = Car::EDirection::LEFT;
else if (this->_car.getAbsoluteAngle() > 210 && this->_car.getAbsoluteAngle() <= 240)
this->_car.edir = Car::EDirection::DOWN_LEFT;
else if (this->_car.getAbsoluteAngle() > 240 && this->_car.getAbsoluteAngle() <= 300)
this->_car.edir = Car::EDirection::DOWN;
else if (this->_car.getAbsoluteAngle() > 300 && this->_car.getAbsoluteAngle() <= 330)
this->_car.edir = Car::EDirection::DOWN_RIGHT;
ifZincirinden kaçınmak istiyorum ; gerçekten çirkin. Bunu yazmanın başka, muhtemelen daha temiz bir yolu var mı?
this( this->) İle ilgili tüm bu açık başvurular gerekli değildir ve okunabilirlik için gerçekten iyi bir şey yapmaz ..
>testler olmadan çok daha az çirkin olurdu ; bunlara gerek yoktur, çünkü her biri önceki ifaçıklamada (ters yönde) zaten test edilmiştir .
else if.
this->_car.getAbsoluteAngle()Tüm çağlayandan önce bir kez geçerseniz çok daha az çirkin, daha az yazmak ve okumak daha iyi görünür .