# SCJP Question

Kanan Jariwala

Greenhorn

Posts: 17

deekasha gunwant

Ranch Hand

Posts: 396

posted 16 years ago

hello kanan,

the explanation to this output goes like this.

remember

1) during assignment operation (i.e. '=' operation )first of all the RHS expression is calculated and the result is assigned to LHS.

so in ur case RHS expression is

i==j

which is true so now the if(...) becomes

if(b = true)

now true will be assigned to b

so finally if(...) will be considered

if(true)

so the expression inside if() has value true so the output is true.

hope this explain things.

do post any other doubt of urs.

regards

deekasha

the explanation to this output goes like this.

**if(b= i == j)**remember

1) during assignment operation (i.e. '=' operation )first of all the RHS expression is calculated and the result is assigned to LHS.

so in ur case RHS expression is

i==j

which is true so now the if(...) becomes

if(b = true)

now true will be assigned to b

so finally if(...) will be considered

if(true)

so the expression inside if() has value true so the output is true.

hope this explain things.

do post any other doubt of urs.

regards

deekasha

Gopinath Rajgopal

Ranch Hand

Posts: 31

posted 16 years ago

Original Code:

int i = 10;

int j = 10;

boolean b = false;

if(b= i == j)

System.out.println("True");

else

System.out.println("False");

To make the if statement more clear, look at it this way:

if(b = (i==j))

Here, i==j returns true, which is assigned to b. Now, your if statement has its required boolean condition - b - which is true. Hence the result.

int i = 10;

int j = 10;

boolean b = false;

if(b= i == j)

System.out.println("True");

else

System.out.println("False");

To make the if statement more clear, look at it this way:

if(b = (i==j))

Here, i==j returns true, which is assigned to b. Now, your if statement has its required boolean condition - b - which is true. Hence the result.