In this tutorial we will see the details about relational and conditional operators in java. The tutorial covers details like what these operators are, how to use them, list of all relational/conditional operators and java programs of these operators.
Relational operators in Java
Relational operators are used to relate or compare if one operand is
greater than, less than, equal to, or not equal to another
operand. Operators like >, >=, < etc are called as
relational operators while operator == is called as equality operator. All relational operators
along with equality operator returns either true or false.
Table below shows the list of all relational operators in java.
List of Relational operators in Java
| Operator | Name | Example | Description |
|---|---|---|---|
| == | Equale to Operator | a==b | Checks if a and b are equal |
| != | Not equal to Operator | a!=b | Checks if a and b are not equal |
| > | Greater than Operator | a>b | Checks if a greater than b |
| >= | Greater than or equal to Operator | a>=b | Checks if a greater
than or equal to b |
| < | Less than Operator | a < b | Checks if a less than b |
| <= | Less than or equal to Operator | a<=b | Checks if a less than
or equal to b |
All relational operators are binary operators which means they operates on two operands. The operands in a relational operator can be a constant value, a variable, an expression or a function call returning a compatible value.
inta = 10, b = 20;booleanb2; b2 = 5 > 6;// operand can be a constant value, b2 = falseb2 = a < b;// operand can be variables, b2 = trueb2 = a <= (b-10);// operand can be an expression, b2 = trueb2 = a >= sum(5,10);// operand can be a method(sum) call, b2 = false
Relational operators are mostly used with conditional and looping statements like
if, if else, for, while etc.
inta = 10, b = 20;booleanb2;if(a > b)while(a > b)
There can be spaces before and after all relational operator. Also remember that, in multi-character relational operators like >=,
<=
==, there should not be any space between the characters of the operator. For example = =, > =, < =
would result in compilation error.
inta = 10, b = 20;if(a>b) orif(a > b)// Correct, spaces are allowed before and after the operatorif(a>=b) orif(a >= b)// Correct use of multi-character operatorif(a > = b)// Incorrect use, spaces not allowed within multi-character operators
All relational operators can be used with primitive data types only except equality(==) operator which can be used with non primitive data types as well. The equality operators can be used to compare if two objects have same references(address).
String str =newString("refresh java"); String str2 =newString("Refresh Java"); String str3 = str;if(str == str2)// condition will result as falseif(str == str3)// condition will result as trueif(str > str2)// Incorrect, operator > can't be use with non primitive types
The result of a relational operator is always a boolean value that is true or false.
So they must be assigned into boolean type variable only, assigning in any other data type variable will result in compilation error.
Java program of relational operator
classRelationalOperator {public static voidmain(String[] args) {intnum1 = 3;intnum2 = 5;if(num1 == num2) System.out.println("num1 == num2");if(num1 != num2) System.out.println("num1 != num2");if(num1 > num2) System.out.println("num1 > num2");if(num1 >= num2) System.out.println("num1 >= num2");if(num1 < num2) System.out.println("num1 < num2");if(num1 <= num2) System.out.println("num1 <= num2"); } }
Output:
num1 != num2
num1 < num2
num1 <= num2
What is the difference between = and == operators in java ?
Operator = is an assignment operator which is used to assign value in a variable while == is an equality operator which is used to compare if two variables/values are equal or not.
Conditional operators in Java
Following operators are conditional operators in java :
| Operator | Name | Example | Description |
|---|---|---|---|
| && | Conditional AND Operator | (a==1 && b==5) | Conditional-AND operator, returns true if both
expression returns true, else false |
| || | Conditional OR Operator | (a==1 || b==5) | Conditional-OR operator, returns true if any of the
expression returns true, else false |
The result of conditional AND and conditional OR operators is also a boolean value which is true
or false.
What is Logical AND and Logical OR operators in java ?
The conditional-AND (&&) and conditional-OR (||) operators in java is
also known as Logical AND(&&) and Logical OR(||) operators respectively.
Both these operators are also binary operators, since they operate on two operands/expressions. The left and right expressions of these operators must be a boolean variable/value, expression or a function returning a boolean value. The operands can not be a constant value like 5, 10 etc.
inta = 10, b = 20,booleanb2 = true;if(b2 && a > 5)// operand can be a boolean variable or expressionif(a > 5 || b > 20)// operands can be an expressionif(a > 5 && isValid())// operands can be an expression or function returning a boolean valueif(5 && 10)// Incorrect, operands can not be a constant value.
The block below shows what would be the result of && and || operators when it's left and right expressions/conditions
returns true or false.
true&&true=>true;true||true=>true;true&&false=>false;true||false=>true;false&&true=>false;false||true=>true;false&&false=>false;false||false=>false;
In conditional && and || operator the second expression is evaluated
only if needed. For example if first expression in && operator
returns false, the second expression will not be evaluated
because no matter what is the result(true or false) of second
expression, the && operator will return false. Similarly in case
of || operator if first expression returns true, the second
expression will not be evaluated.
inta = 10, b = 20;if(a > 12 && b > 15)// Here b > 15 won't be checked as a > 12 returns falseif(a > 5 || b > 20)// Here b > 20 won't be checked as a > 5 returns true
There should not be any space between the characters of conditional AND and OR operators. For example & & or
| | will result in compilation error.
inta = 10, b = 20;if(a > 12 & & b > 15)// Incorrect, there should not be any space in &&if(a > 5 | | b > 20)// Incorrect, there should not be any space in ||
These operators can also be repeated any number of times inside an expression and they can be mixed as well.
inta = 10, b = 20;if(a > 5 && a < 20 && b > 15)// returns true, as all conditions are trueif((a > 10 && a < 20) || b > 15)// returns true, as b > 15 returns true
Java Ternary Operator
The ternary operator( ?:) is another conditional operator in java. This operator can be thought
as a short form of if-then-else statement. It is
known as ternary operator because it uses three operands.
Line below shows how to use this operator.
variable = someCondition ? Expression1 : Expression2;
Here someCondition is a boolean expression that returns either
true or false. You can read this operator as "if someCondition
is true, assign the value of Expression1 into the variable else assign the
value of Expression2 into the variable.
What is boolean expression in java ?
An expression which returns either true or false is known as boolean expression.
For example a > b, a == b, (a + b) < c etc are boolean expressions.
Here Expression1 and Expression2 can be a constant value, a variable or an expression like a+b, a*b+c, a>b, "hello" etc. The value
of these expressions must match with data type of the variable.
inta = 10, b = 20;intresult = a > b ? 5 : 1;// Expression can be a constant valueintresult2 = a > b ? a : b;// Expression can be a variableintresult3 = a > b ? (a-b) : (b-a); String str = (a == b) ?"Equal":"Not Equal";
Java program of conditional operator
classConditionalOperator {public static voidmain(String[] args) {intnum1 = 3, num2 = 5, num3 = 10;if(num1 == 3 && num2 == 5) System.out.println("num1 = 3 AND num2 = 5");if(num1 > 0 && num2 > 1 && num3 >= 10) System.out.println("num1 > 0 AND num2 > 1 and num3 >= 10");if(num1 == 3 || num2 == 5) System.out.println("num1 is 3 OR num2 is 5");if((num1 > 0 || num2 > 1) && num3 >10) System.out.println("Print me if condition is true");intresult = num1 < num2 ? num1 : num2; String str = num1 == num2 ?"num1 and num2 is equal":"num1 and num2 is not equal"; System.out.println("result = "+result); System.out.println("str = "+str); } }
Output:
num1 = 3 AND num2 = 5
num1 > 0 AND num2 > 1 and num3 >= 10
num1 is 3 OR num2 is 5
result = 3
str = num1 and num2 is not equal
- An expression is constructed using variable, operators and method invocations. For example a, a+b, a*b+c are expressions.
- The conditional && and || operators exhibit "short-circuiting" behavior, which means that the second operand is evaluated only if needed.


