Java: Difference between Conditional and Bitwise AND operator - & vs &&
There two AND operators in Java that we can use.
& - Bitwise AND operator
&& - Conditional AND operator.
In Java both above operators can be used in if conditions. However there is a difference how each works. Let's see with an example.
(x != 0) & (x > 1) - With bitwise AND, it evaluates both (x !=0) and (x > 1) conditions. Then takes the AND of the two results.
(x != 0) && (x > 1) - With conditional AND, it first valuates (x !=0) and only if it is true, (x > 1) condition will be evaluated. Then takes the AND of the two results. If (x!= 0) was false, it simply returns false.
See the example below.
(x != 0) & (3/x > 1) - This will throw an exception if the x=0. So for such cases we can only use &&.
So in summary, it is always advisable to use conditional AND (&&) in if conditions. & should be used for bitwise operations with numbers.
& - Bitwise AND operator
&& - Conditional AND operator.
In Java both above operators can be used in if conditions. However there is a difference how each works. Let's see with an example.
(x != 0) & (x > 1) - With bitwise AND, it evaluates both (x !=0) and (x > 1) conditions. Then takes the AND of the two results.
(x != 0) && (x > 1) - With conditional AND, it first valuates (x !=0) and only if it is true, (x > 1) condition will be evaluated. Then takes the AND of the two results. If (x!= 0) was false, it simply returns false.
What is the problem with using & in a condition?
There are cases where we can only execute a condition only some other condition is true.See the example below.
(x != 0) & (3/x > 1) - This will throw an exception if the x=0. So for such cases we can only use &&.
So in summary, it is always advisable to use conditional AND (&&) in if conditions. & should be used for bitwise operations with numbers.
Comments
Post a Comment