Chaining together a million && and || conditions is ugly. Look at how confusing that is. As a general rule, if you're doing more than one &&/|| in a single conditional, you're probably making it too complicated (there are exceptions to that rule, of course).
I say Simplify it!
1 2 3 4 5 6 7 8 9 10
if(tankX > (turrentX + turrentW)) returnfalse; // tank to the right of the turrent
if(turrentX > ( tankX + tankW)) returnfalse; // tank to the left of the turrent
if(tankY > (turrentY + turrentH)) returnfalse; // tank below
if(turrentY > ( tankY + tankH)) returnfalse; // tank above
// if none of those were true, then the tank must be on top of the turret