Java quiz 26: How unary operators work?

  Quizzes     Assignments     Puzzles     Easy exercises     Required knowledge  
< Java Quizzes    Green = Easy,  Blue = Normal,  Red = Hard
Select    01   02   03   04   05   06   07   08   09   10   11   12   13   14   15 
 16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   By title 
>

The following example shows different kind of unary operators.

Java quiz 26: How unary operators work?

Level: Normal
What happens if the following code is compiled and run?

public class MyClass
{
  static int x = 8;
  
  public static void main(String[] args)
  {
    if(x == x--)
    {
      x -= 4;
    }
    else
    {
      x -= 3;
    }
    System.out.print(x++ + ++x + x++);
  }
}
Author: Sar Maroof

Select the correct answer.


Answer explanation

  1. The statement if(x == x–) returns true, because the value of x is decremented by one after the evaluation.
  2. The statement x -= 4; decrements the value of x by 4.
  3. The statement System.out.print(x++ + ++x + x++); prints the sum of x++, ++x and x++ to the standard output. x++ = 8-1-4 = 3, ++x = 3 +2 = 5, because the value of x is incremented by one a step before. The value of the last x++ remains 5. The statement writes (3 + 5 + 5) 13 to the standard output.

The correct answer is: b.





Sar Maroof is a professional software development teacher, gives master classes and publishes technical articles. He is also an expert software developer and worked for several big as well as small companies and later as a freelancer.

 Subscribe to Sar Maroof's RSS feeds!
 Mail this page to a friend!
 Bookmark this page!

3 Comments

Add a Comment
  1. The statement writes (4 + 6 + 6)

    1. this is wrong The statement writes (3 + 5 + 5), The trick is it evaluates the expression first so we miss the 6 and end up in adding 3, 5, 5. please correct me if i’m wrong

    2. Sorry sri, thanks for your comment. I have mixed two quizzes for different websites with the same idea, but different results. The end result is 3 + 5 + 5 = 13.

Leave a Reply

Your email address will not be published. Required fields are marked *