File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes post and pre increment operators Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of EJB 3 in Action this week in the EJB and other Java EE Technologies forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "post and pre increment operators" Watch "post and pre increment operators" New topic
Author

post and pre increment operators

Roshan Rai
Greenhorn

Joined: Aug 16, 2012
Posts: 15
i got a doubt in the following code

int z = 5;
if(++z > 5 || ++z > 6) z++; // z = 7 after this code


how does the output comes out to be z=7
in the if condition z becomes 6
but as z++ is post increment it should print(return) 6 and get incremented to 7..
so the output should be 6...??
it must be a silly doubt..but please help me..
thanks in advance..
Abhilash Sharma
Ranch Hand

Joined: Dec 05, 2010
Posts: 67

As you see || is a short circuit operator.
So it first it test first condition and if it found it true it didn't execute next one which is the case here.
In ++z>5 ,z first incremented and then compared so it becomes
6>5 which is true and the controls comes to z++ which increment z to 7 and return it.
If you print z like this System.out.print(z) //z=7
If you print z like this System.out.print(z++) //z=6


OCPJP 6 | OCEJWCD 6
Henry Wong
author
Sheriff

Joined: Sep 28, 2004
Posts: 18103
    
  39

Roshan Rai wrote:i got a doubt in the following code

int z = 5;
if(++z > 5 || ++z > 6) z++; // z = 7 after this code


how does the output comes out to be z=7
in the if condition z becomes 6
but as z++ is post increment it should print(return) 6 and get incremented to 7..
so the output should be 6...??
it must be a silly doubt..but please help me..
thanks in advance..


Where in the code is this print() that you are referring to?

Henry

Books: Java Threads, 3rd Edition, Jini in a Nutshell, and Java Gems (contributor)
ujjawal rohra
Ranch Hand

Joined: Mar 20, 2010
Posts: 103
Roshan,

if after the following code you use the value of z then it will be definitely 7 because after Line 1 z is incremented to 7.



But if you place return statement at Line 1 like this:

then the value of z returned will be 6 because the post increment operator will increment it after using it in the return statement.

Hope that helps.


SCJP 6
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: post and pre increment operators
 
Similar Threads
doubt!!
Doubt........
Operator doubt
Doubt in K&B concerning topic :Operators