## kapojian

my program doesnt seem following my if statement condition, i have || and && in my statement... is there a better way to do this??thanks

this just an example of my code...

``````else if (age>19&&bmires2>=18.50||bmires2<=25.00)
{messagebox.show("normal weight");
}
else if (age<19&&bmires2<18.50||bmires2>13.25)
{                 messagebox.show("underweight");
}``````

## itsmetabish

just put your && statement in brackets

``else if ((age>19 && bmires2>=18.50) || bmires2<=25.00)``

## kapojian

cant i do this??

``else if ((age>19)&& bmires2>=18.50||bmires2<=25.00)``

?? im comparing the bmires2. its range must be from 18.50 to 25.00..
or both of them should be inside the bracket?

``else if ((age>19)&&(bmires2>18.50||bmires2<=25.00))``

whats the best way to compare my statement with && and ||

## nmaillet 97

Your using the OR operator when you should be using an AND operator. If you say `bmires2 >= 18.50 || bmires2 <= 25.00` , it will always evaluate to true. Therefore the only thing that would affect the statement is `age > 19` .

Just for instance, if `bmires2 = 10.00` , then `bmires2 >= 18.50` is false, but `bmi <= 25.00` is true. Given this, true AND false will evaluate to true.

In my personal experience, whenever I am using a mixture of AND's and OR's, I use parentheses to avoid any confusion.

commented: Good! +14

## kapojian

is there another way to have a bmires2 a range not less than 18.50 and not greater than 25???

``else if ((age>19)&&(bmires2>18.50||bmires2<25))``

is this right?

what do you suggest??? thanks..

## ddanbe 2,720

This is right if you use && instead of ||.
A bmi of 0 would pass your or test. Check it!

## nmaillet 97

It is an issue with operators, not parentheses in this case:

``else if (age > 19 && bmires2 > 18.50 && bmires2 < 25.00)``

This would work for you. Since you would only be using the AND operator, there is no need to worry about the order in which the statements are evaluated. You may want to add parentheses for readability, such as:

``else if (age > 19 && (bmires2 > 18.50 && bmires2 < 25.00))``

but this is not necessary. This just makes things blatantly obvious for others. Take a look at the link ddanbe posted.

## Mitja Bonca 557

Depends on what he has in mind to put together and what to seperate from other data.

## kapojian

i guess i got confused with the logical operations in my statement. thanks for your great replies.... thanks a lot.. got clarified and solved