This week's book giveaway is in the Design forum.We're giving away four copies of Design for the Mind and have Victor S. Yocco on-line!See this thread for details.
Win a copy of Design for the Mind this week in the Design forum!

# Problem

Rahul Pawar
Ranch Hand
Posts: 38
hi friends ,
i have some doubts about associativity and precedence
can anybody clear my concepts ?
please if possible explain me with examples
rahul

Cindy Glass
"The Hood"
Sheriff
Posts: 8521
What are your doubts?

Rahul Pawar
Ranch Hand
Posts: 38
i don't know how associativity and precedence work .
rahul

Jane Griscti
Ranch Hand
Posts: 3141
Hi Rahul,
'precedence' refers to the priorities given to the various operators. When a Java expression is evaluated operator precedence rules are applied; similar to the way Math expressions are evaluated. For example, parantheses are evaluated first, then mulitiplication/division, then addition, subtraction, etc.
For example, in the expression <code>5 + 3 * 2</code>, mulitiplication has higher precedence than addition, so the expression is evaluated as <code>5 + 6</code> with a result of 11.
If parantheses are used <code>(5 + 3) * 2</code>, the portion within the parantheses is evaluated first <code> 8 * 2</code> with a result of 16.
'associativity' refers to the order in which operators are evaluated when operators have the same level of precedence. In Java, expressions are evaluated left-to-right, except for assignments, which are evaluated right-to-left.
For example, <code>5 - 3 + 2</code> is evaluated left-to-right <code> 2 + 2 </code> with a result of 4.
Assignment is right-to-left, <code> a = b = c = 5</code> first 5 is assigned to 'c', then the value of 'c' is assigned to 'b' and then the value of 'b' is assigned to 'a', with the result, a = 5.
For more information on how Java evaluates expressions read JSL §15.7
Hope that helps.

------------------
Jane Griscti
Sun Certified Programmer for the Javaï¿½ 2 Platform