Java Programming
Control statements
Compare numeric variables
Relational operators
Operator | Name | Returns a true value if |
---|---|---|
== | Equality | Both operands are equal. |
!= | Inequality | The left and right operands are not equal. |
> | Greater Than | The left operand is greater than the right operand. |
< | Less Than | The left operand is less than the right operand. |
>= | Greater Than Or Equal | The left operand is greater than or equal to the right operand. |
<= | Less Than Or Equal | The left operand is less than or equal to the right operand. |
Examples of conditional expressions
discountPercent == 2.3 // equal to a numeric literal subtotal != 0 // not equal to a numeric literal years > 0 // greater than a numeric literal i < months // less than a variable subtotal >= 500 // greater than or equal to a numeric literal quantity <= reorderPoint // less than or equal to a variable
- You can use the relational operators to compare two numeric operands and return a Boolean value that is either true or false.
- To compare two numeric operands for equality, make sure to use two equals signs. If you only use one equals sign, you'll code an assignment statement, and your code won't compile.
- If you compare an integer operand with a double operand, Java will cast the integer operand to a double.
Code that uses logical operators.
public class LogicalOperators { public static void main(String[] args) { boolean found = true; boolean flag = false; double x = 5.2; double y = 3.4; int a = 5, b = 8; int n = 20; char ch = 'B'; System.out.println("Line 1: !found evaluates to " + !found); //Line 1 System.out.println("Line 2: x > 4.0 evaluates to " + (x > 4.0)); //Line 2 System.out.println("Line 3: !found && (x >= 0) " + "evaluates to " + (!found && (x >= 0))); //Line 3 System.out.println("Line 4: !(found && (x >= 0)) " + "evaluates to " + !(found && (x >= 0))); //Line 4 System.out.println("Line 5: x + y <= 20.5 evaluates to " + (x + y <= 20.5)); //Line 5 System.out.println("Line 6: (n >= 0) && (n <= 100) " + "evaluates to " + ((n >= 0) && (n <= 100))); //Line 6 System.out.println("Line 7: ('A' <= ch && ch <= 'Z') " + "evaluates to " + ('A' <= ch && ch <= 'Z')); //Line 7 System.out.println("Line 8: (a + 2 <= b) && !flag " + "evaluates to " + ((a + 2 <= b) && !flag)); //Line 8 } }The console after the program finishes
Code that compares floating-point numbers.
public class FloatingPointNumbers { public static void main(String[] args) { System.out.println("3.0 / 7.0 = " + (3.0 / 7.0)); System.out.println("2.0 / 7.0 = " + (2.0 / 7.0)); System.out.println("3.0 / 7.0 + 2.0 / 7.0 + 2.0 / 7.0 = " + (3.0 / 7.0 + 2.0 / 7.0 + 2.0 / 7.0)); System.out.println("1.0 == (3.0 / 7.0 + 2.0 / 7.0 + 2.0 / 7.0) = " + (1.0 == (3.0 / 7.0 + 2.0 / 7.0 + 2.0 / 7.0))); } }The console after the program finishes
The above output sows that you should be careful when comparing floating-point numbers for equality. As an alternative to testing floating-point numbers for equality, you can test that their difference is less than an acceptable level of error, e.g. 0.000001.