|
|
Start of Tutorial > Start of Trail > Start of Lesson |
Search
Feedback Form |
A relational operator compares two values and determines the relationship between them. For example,!=returnstrueif the two operands are unequal. This table summarizes the relational operators:
Operator Use Returns trueif>op1 > op2op1is greater thanop2>=op1 >= op2op1is greater than or equal toop2<op1 < op2op1is less thanop2<=op1 <= op2op1is less than or equal toop2==op1 == op2op1andop2are equal!=op1 != op2op1andop2are not equalFollowing is an example,
RelationalDemo, that defines three integer numbers and uses the relational operators to compare them. The relational operations are shown in red:
Here's the output from this program:public class RelationalDemo { public static void main(String[] args) { //a few numbers int i = 37; int j = 42; int k = 42; System.out.println("Variable values..."); System.out.println(" i = " + i); System.out.println(" j = " + j); System.out.println(" k = " + k); //greater than System.out.println("Greater than..."); System.out.println(" i > j = " + (i > j)); //false System.out.println(" j > i = " + (j > i)); //true System.out.println(" k > j = " + (k > j)); //false, they are equal //greater than or equal to System.out.println("Greater than or equal to..."); System.out.println(" i >= j = " + (i >= j)); //false System.out.println(" j >= i = " + (j >= i)); //true System.out.println(" k >= j = " + (k >= j)); //true //less than System.out.println("Less than..."); System.out.println(" i < j = " + (i < j)); //true System.out.println(" j < i = " + (j < i)); //false System.out.println(" k < j = " + (k < j)); //false //less than or equal to System.out.println("Less than or equal to..."); System.out.println(" i <= j = " + (i <= j)); //true System.out.println(" j <= i = " + (j <= i)); //false System.out.println(" k <= j = " + (k <= j)); //true //equal to System.out.println("Equal to..."); System.out.println(" i == j = " + (i == j)); //false System.out.println(" k == j = " + (k == j)); //true //not equal to System.out.println("Not equal to..."); System.out.println(" i != j = " + (i != j)); //true System.out.println(" k != j = " + (k != j)); //false } }Relational operators often are used with conditional operators to construct more complex decision-making expressions. The Java programming language supports six conditional operators-five binary and one unary--as shown in the following table.Variable values... i = 37 j = 42 k = 42 Greater than... i > j = false j > i = true k > j = false Greater than or equal to... i >= j = false j >= i = true k >= j = true Less than... i < j = true j < i = false k < j = false Less than or equal to... i <= j = true j <= i = false k <= j = true Equal to... i == j = false k == j = true Not equal to... i != j = true k != j = false
Operator Use Returns trueif&&op1 && op2op1andop2are bothtrue, conditionally evaluatesop2||op1 || op2either op1orop2istrue, conditionally evaluatesop2!! opopisfalse&op1 & op2op1andop2are bothtrue, always evaluatesop1andop2|op1 | op2either op1orop2istrue, always evaluatesop1andop2^op1 ^ op2if op1 and op2 are different--that is if one or the other of the operands is true but not both One such operator is
&&, which performs the conditionalANDoperation. You can use two different relational operators along with&&to determine whether both relationships aretrue. The following line of code uses this technique to determine whether an array index is between two boundaries. It determines whether the index is both greater than or equal to 0 and less thanNUM_ENTRIES, which is a previously defined constant value.Note that in some instances, the second operand to a conditional operator may not be evaluated. Consider this code segment:0 <= index && index < NUM_ENTRIESThe(numChars < LIMIT) && (...)&&operator will returntrueonly if both operands aretrue. So, ifnumCharsis greater than or equal toLIMIT, the left-hand operand for&&isfalse, and the return value of&&can be determined without evaluating the right-hand operand. In such a case, the interpreter will not evaluate the right-hand operand. This has important implications if the right-hand operand has side effects, such as reading from a stream, updating a value, or making a calculation.When both operands are boolean, the operator
&performs the same operation as&&. However,&always evaluates both of its operands and returnstrueif both aretrue. Likewise, when the operands are boolean,|performs the same operation as||. The|operator always evaluates both of its operands and returnstrueif at least one of its operands istrue. When their operands are numbers,&and|perform bitwise manipulations.The next section
has more information.
|
|
Start of Tutorial > Start of Trail > Start of Lesson |
Search
Feedback Form |
Copyright 1995-2004 Sun Microsystems, Inc. All rights reserved.