<< Chapter < Page Chapter >> Page >

Postfix increment and decrement operators

The program shown in Listing 1 illustrates the use of the increment (++) and decrement (--) operators in their postfix form.

Behavior of increment operator

Given a variable named x , the two statements shown in Figure 1 are equivalent.

Figure 1 . Behavior of increment operator.
x++; x = x + 1;

Behavior of decrement operator

The two statements shown in Figure 2 are equivalent.

Figure 2 . Behavior of decrement operator.
x--; x = x - 1;

And the answer to question is...

D. 6 4 9.3 7.300000000000001

Inaccurate results

Regarding the program output, you will note that there is some arithmetic inaccuracy when this program is executed using JDK 1.6. Ideally, the outputvalue 7.300000000000001 should simply be 7.3 without the very small additional fractional part, but that sort of thing often happens when using floating types.

What isn't clear

What isn't clear is whether the increment and decrement operators will be used in the adjustment or update clause of a for loop as shown in Listing 2 .

Listing 2 . Adjustment clause of a for loop.
public class Increment02{ public static void main(String args[]){ new Worker().doWork();}//end main() }//end class definitionclass Worker{ public void doWork(){for(int cnt = 0;cnt<5;cnt++){ System.out.println(cnt);}//end for loop }//end doWork()}//end class definition

One could argue that the adjustment clause, which reads cnt++ in Listing 2 , is an independent expression contained in a larger overall construction. If so, the use of the increment operator would notbe excluded by the specification .

In any event, the increment operator behaves as described in Figure 1 even when used in this way. The safest thing would be for you to assume that it will be used in thisway and to be prepared for it on the exam.

What the student apparently doesn't need to know

Prefix and postfix forms are both available

The increment and decrement operators have both a prefix form and a postfix form.

Can be fairly complex

It is possible to construct some fairly complex scenarios when using these operators in both the prefix and postfix forms and combining them into expressions.

Postfix only on the exam

However, according to the specification , only the postfix form is used on the AP exam. Also, according to the specification , the increment and decrement operators are not included in other expressions on the AP exam.

Another program

Under the philosophy that it is always good to learn a little more about a topic than is absolutely required before taking an exam on that topic, I will present and explain a programthat illustrates the use of prefix and postfix increment operators both outside and included inside of another expression.

What output is produced by the program shown in Listing 3 ?

  • A. 5 50 500 501 5001 5001
  • B. 6 51 501 501 5000 5001
  • C. 6 51 500 501 5001 5001
  • D. 6 50 500 501 5001 5001
Listing 3 . More complex increment program.
public class Increment03{ public static void main(String args[]){ new Worker().doWork();}//end main() }//end class definitionclass Worker{ public void doWork(){int w = 5; int x = 50;int y = 500; int z = 5000;++w;//prefix incrementx++;//postfix increment System.out.println(w + " " +x + " " + y++ + " " +y + " " + ++z + " " +z); }//end doWork()}//end class definition

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Ap computer science a, clarification of the java subset. OpenStax CNX. Oct 03, 2015 Download for free at https://legacy.cnx.org/content/col11279/1.5
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Ap computer science a, clarification of the java subset' conversation and receive update notifications?

Ask