4

When i convert:

int B=1;
boolean A=B;

It gives error: Incompatible types, which is true

But when I write this code:

int C=0;
boolean A=C==1;

it gives false while if I change value of C to 1 it gives true. I don't understand how compiler is doing it.

3 Answers 3

4
int C=0;
boolean A=C==1;

The compiler first gives C a zero.

Variable : C
Value    : 0

Now The Assignment statement,

We know that the assignment statement evaluates the right part first and the gives it to the left.

The right part ==> C == 1 Here, This is an expression which evaluates to true or false. In this case it is false as c is 0.

So the R.H.S is false.

Now this gets assigned to the L.H.S which is A.

A = ( C == 1 ) ==> A = false

As A is a boolean this is a right statement

Sign up to request clarification or add additional context in comments.

Comments

4

C==1 is an expression whose result is boolean (it's the comparison operator). It returns true if C equals to 1 and false otherwise.

Therefore boolean A=C==1; is a valid assignment of a boolean value to a boolean variable.

Comments

2

It checks c==1 first and result getting assigned to A.

as C is not 1 so expression value is resulting to false which is assigned to A

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.