আমার কাছে নিম্নলিখিত কোড রয়েছে:
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->) এর সুস্পষ্ট dereferences বোঝার দরকার নেই এবং পাঠযোগ্যতার জন্য সত্যই কিছু করতে পারে না ..
>পরীক্ষা ছাড়াই কোডটি অনেক কম কুশল হবে ; তাদের প্রয়োজন নেই, যেহেতু পূর্ববর্তী ifবিবৃতিতে তাদের প্রত্যেকে ইতিমধ্যে পরীক্ষা করা হয়েছে (বিপরীত দিকে) ।
else if।
this->_car.getAbsoluteAngle()পুরো ক্যাসকেডের আগে একবার যদি ফ্যাক্ট করে তবে এটি দেখতে অনেক কম কুরুচিপূর্ণ , টাইপ করা কম এবং পড়ার চেয়ে আরও ভাল লাগবে ।