M/F 2:30-3:20 |
CS 1130: Transition to OO Programming Spring 2016 |
||||||||||||||||||||||||
Main
About: Overview Announcements Staff Consultants Calendar Materials: Texts DrJava Terminology Lectures: In-Class Web-Based VideoNote Assessment: Grading Assignments Labs Resources: CMS Piazza (link) Piazza (about) Java API Style Guide Academic Integrity |
Precedences of operatorsYou know that multiplication * takes precedence over addition +. That is, the expression 5 + 4 * 3 is evaluated as if it were parenthesized like this: 5 + (4 * 3). Mathematics has conventions for precedences of operators in order to reduce the number of parentheses required in writing complex expressions. Some of these conventions are standard throughout the world, such as * over +. Others are not. Below is a table of precedences for Java operators. Refer to this table, or the one on p. 227 of Gries/Gries, if you forget the precedences. Table of operator precedences
For example, the expression (n != 0) && (10/n > 2) can be easily rewritten as n != 0 && 10/n > 2 because relational operators have precedence over &&. Some GuidelinesKeep redundant parentheses to a minimum (but don't sacrifice clarity)Your goal in writing expressions should be to make them a clear and simple-looking as possible, and this can often be done by eliminating redundant expressions —but you can help the reader by putting more space around operators with less precedence. For example, the two assignment statements shown below have the same meaning, but the second is easier to read: b= ((x<=y)||(x<=z)); Keep redundant parentheses to a minimum. For example, they are not needed in a return statement within a function body (you will learn about the return statement later). The following two statements are equivalent, but the second is easier to read: return (x >= -10 && x <= 10); Use parenthesis with AND and OR for clarityJava gives && precedence over ||, so that b || c && d is equivalent to b || (c && d). This convention is non-standard, and controversial for some. Therefore, when writing sequences of &&s and ||s, we suggest always putting in parentheses to make the meaning clear. This is a case where the suggestion to eliminate redundant parentheses is overruled in favor of removing confusion and providing clarity. |