When Java evaluates this assignment expression, it first looks at the expression to the *left *of

the question mark. If **denom **equals zero, then the expression *between *the question mark and

the colon is evaluated and used as the value of the entire **? **expression. If **denom **does not

equal zero, then the expression *after *the colon is evaluated and used for the value of the

entire **? **expression. The result produced by the **? **operator is then assigned to **ratio**.

Here is a program that demonstrates the **? **operator. It uses it to obtain the absolute

value of a variable.

// Demonstrate ?.

class Ternary {

public static void main(String args[]) {

int i, k;

i = 10;

k = i < 0 ? -i : i; // get absolute value of i

System.out.print("Absolute value of ");

System.out.println(i + " is " + k);

i = -10;

k = i < 0 ? -i : i; // get absolute value of i

System.out.print("Absolute value of ");

System.out.println(i + " is " + k);

}

}

The output generated by the program is shown here:

Absolute value of 10 is 10

Absolute value of -10 is 10

Operator Precedence

Table 4-1 shows the order of precedence for Java operators, from highest to lowest. Notice

that the first row shows items that you may not normally think of as operators: parentheses,

square brackets, and the dot operator. Technically, these are called *separators*, but they act

like operators in an expression. Parentheses are used to alter the precedence of an operation.

As you know from the previous chapter, the square brackets provide array indexing. The dot

operator is used to dereference objects and will be discussed later in this topic.

Using Parentheses

to obtain the result you desire. For example, consider the following expression:

a >> b + 3

This expression first adds 3 to **b **and then shifts **a **right by that result. That is, this expression

can be rewritten using redundant parentheses like this:

a >> (b + 3)

Search WWH :

Custom Search