Win a copy of Learn Spring Security (video course) this week in the Spring forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Short-Circuit Logical Operators

 
sonali sawant
Greenhorn
Posts: 13
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
public class Test
{
public static void main(String [] args)
{
int x= 0;
int y= 10;
for (int z = 0; z < 5; z++)
{
if (( y-- > 7 ) || (++x > 2))
{
y--;
}
}
System.out.println(y + " " + x);
}
}

Answer is 2 3

Can anyone explain output of this questions.It is from K&B Master Exam-1
 
wise owen
Ranch Hand
Posts: 2023
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
for (int z = 0; z < 5; z++)
{
if (( y-- > 7 ) || (++x > 2))
{
y--;
}
}

z=0:
(y-- > 7) is true and do y--; //x =0 y =8
z=1:
(y-- > 7) is true and do y--; //x =0 y =6
z=2:
(y-- > 7) is false and continue to evalute (++x > 2) which is false //x=1 y=5
z=3:
(y-- > 7) is false and continue to evalute (++x > 2) which is false //x=2 y=4
z=4:
(y-- > 7) is false and (++x > 2) is true then doing y--; //x=3 y=2
 
sonali sawant
Greenhorn
Posts: 13
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks.Now i understood it.Thanks again.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic