मेरे पास निम्नलिखित कोड हैं:
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;
मैं ifएस श्रृंखला से बचना चाहता हूं ; यह वास्तव में बदसूरत है। वहाँ एक और, संभवतः क्लीनर, यह लिखने का तरीका है?
this( this->) की जरूरत नहीं है और वास्तव में पठनीयता के लिए कुछ भी अच्छा नहीं करता है ..
>परीक्षणों के बिना कोड बहुत कम बदसूरत होगा ; उनकी जरूरत नहीं है, क्योंकि उनमें से प्रत्येक को पहले से ही (विपरीत दिशा में) पिछले ifबयान में परीक्षण किया गया है ।
else if।
this->_car.getAbsoluteAngle()पूरे कैस्केड से पहले एक बार फेकते हैं ।