Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Nested ifs or ands?

I'm a beginner level programmer who's just starting to work on actual projects, and I'm starting to think about things such as efficiency and if my code looks professional. I was wondering if, when trying to check multiple booleans, is it better to use nested if statements, or multiple && and || operators.

Action action = event.getAction();
Material holding = event.getItem().getType();
if((action.equals(Action.RIGHT_CLICK_AIR)||(action.equals(Action.RIGHT_CLICK_BLOCK))))
{
    if((event.hasItem())&&(holding.equals(Material.COMPASS)))
    {
        //if the player right clicked while holding a compass
    }
}

Does this look right? I tried to group the like if-statements together. Also, if there's anything else I can do to improve my formatting, please tell me! Thanks.

like image 834
SilverLining Avatar asked Apr 10 '26 08:04

SilverLining


1 Answers

Welcome to the Stack Overflow community!

There is no problem with the code shared in the question. In some cases, it is better to opt for legibility so that your co-workers will be able to understand the proposed code better. But in the end, this is very subjective.

IMHO, it is easier to understand if we write all the conditions at once. So,

Action action = event.getAction();
Material holding = event.getItem().getType();

Boolean isRequiredAction = action.equals(Action.RIGHT_CLICK_AIR) || action.equals(Action.RIGHT_CLICK_BLOCK)

if (
  isRequiredAction
  && event.hasItem() 
  && holding.equals(Material.COMPASS)
)
{
  // logic...
}

However, if you really want advice and tips on how to refactor it and best practices in a particular language, try Code Review community.

like image 82
Joao Fernandes Avatar answered Apr 11 '26 22:04

Joao Fernandes



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!