| 
			 	
Prev: Business Calendar 
		Next: Reading from very large file 	
		 From: Ryan Chan on 8 May 2010 09:48 Hi, some simple question about the Operator precedence int i = 9; System.out.println(i++ + 2); Why it print 11 instead of 12, assume operator is evaluated from left to right? 	
		 From: Lew on 8 May 2010 09:51 		On 05/08/2010 09:48 AM, Ryan Chan wrote: > int i = 9; > System.out.println(i++ + 2); > > Why it print 11 instead of 12, assume operator is evaluated from left > to right? What is the definition of postincrement? To put another way, given: int i = 9; int j = i++; what is the value of j? It has nothing to do with precedence. -- Lew 	
		 From: markspace on 8 May 2010 11:30 		Ryan Chan wrote: > Hi, some simple question about the Operator precedence > > > > int i = 9; > System.out.println(i++ + 2); > > Why it print 11 instead of 12, assume operator is evaluated from left > to right? > Yeah, it's POST increment. That means i is incremented AFTER it's value (9) is used. Not a precedence issue. PEBCAK issue. 	
		 From: Lew on 8 May 2010 11:47 		Ryan Chan wrote: >> int i = 9; >> System.out.println(i++ + 2); >> >> Why it print 11 instead of 12, assume operator is evaluated from left >> to right? markspace wrote: > Yeah, it's POST increment. That means i is incremented AFTER it's value > (9) is used. Not a precedence issue. PEBCAK issue. OP: Consider reading the documentation. The Java tutorial explains this sort of thing nicely: <http://java.sun.com/docs/books/tutorial/java/nutsandbolts/op1.html> and, of course, the Java Language Specification is the authority on the matter: <http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#292383> And there's no need to assume the order of evaluation; it's specified by the language's rules. -- Lew 	
		 From: EJP on 9 May 2010 00:51 		
		On 8/05/2010 11:48 PM, Ryan Chan wrote: > Why it print 11 instead of 12, assume operator is evaluated from left > to right? Apart from what the other respondents have said, operators are not evaluated left to right. Neither are operands other than those around a single binary operator.  |