What is ternary operator
Literal meaning of ternary is three. As the name suggests, a ternary operator is an operator which has three operands.
First of these three operands is a condition which should return either true or false while second and third operands are also expressions.

The ternary operator returns one of these(either second or third operand) as the result based on whether the first operand(the condition) is true or false.
A ternary operator can be used as a replacement of simple if-else statement having a single statement.
Ternary operator syntax
A ternary operator has three operands and these operands are separated with ? and :
Syntax of a ternary operator is as follows

Operand 1 ? Operand 2 : Operand 3

Operand 1 is an expression which should return true or false.
If it returns true, then the ternary operator returns Operand 2(expression after ?).
If Operand 1 results in false, then the ternary operator returns Operand 3(expression after : (colon)).

Remember that all the three operands or expressions should return a value. An example will make it more clear.

Ternary Operator Example
Below is an example program showing the usage of ternary operator in java.

public class TernaryExample {
  public static void main(String[] args) {
    String shorthand = "java";
    String langOne = "java";
    String langTwo = "javascript";
    String language = "js".equals(shorthand) ? langTwo : langOne;
    System.out.println("Language is " + language);

Above program contains a ternary operator with the first expression as a condition which compares the value of shorthand variable with “js”.
Since the result is false, the ternary operator returns the expression after : which is assigned to a variable.
The program prints below result.

Language is java

If the comparison would have resulted in true, then the return value of the ternary operator would have been the expression after ?, that is, “javascript”.

Condition(or operand 1) of ternary operator need not be a simple condition.
It can be a complex condition with logical operators such as && or ||. Example,

(shorthand != null && "js".equals(shorthand)) ? languageTwo : languageOne;

Ternary Operator Vs if statement
As stated earlier, a ternary operator can be used as a replacement of an if-else statement.
Using a ternary operator makes the code simpler and shorter provided that it is not over used.

Thus, the ternary operator used in the above example when replaced with an if-else will look like

String language = "";
if("js".equals(shorthand)) {
  language = "javascript";
} else {
  language = "java";

You can see the difference.
A ternary operator can not be replaced with an if-else statement when either if block or else block has multiple statements to execute.
A ternary operator is only suitable when there is a single statement to execute or when a choice is to be made out of two.

Nested ternary operator
Using a ternary operator inside another ternary operator is called nesting of ternary operators.
Inner ternary operator is used in place of return values(that in, place of Operands 2 or 3 or both) of the outer ternary operator.

public class TernaryExample {
  public static void main(String[] args) {
    int number = 50;
    String size = number > 30 ? number > 60 ? "Biggest" : "Bigger" :"Big";
    System.out.println("Number is " + size); // result will be "Bigger

Above example has a ternary operator with the first operand as a condition that compares a number with 30.
If it is greater, then the control will move to the inner ternary operator(that is Operand 2) which compares the number with 60.
This is the condition of the inner ternary operator.

If the condition of the inner ternary operator is true, then the result will be “Biggest” else “Bigger”.

If the condition of the outer ternary operator is false, then the inner ternary operator will never be executed and the result will beĀ “Big”.
Nested ternary operator in the above example when converted to an if-else block will look as below.

String size = "";
if(number > 30) {
   if(number > 60) {
      size = "Biggest";
   } else {
      size = "Bigger";
} else {
   size = "Big";

A nested ternary operator can also be enclosed between parenthesis to enhance readability.
Thus, the ternary operator used in the above example could also be written as

String size = number > 30 ? (number > 60 ? "Biggest" : "Bigger") :"Big";

That is all on this article on ternary operators in java. Hit clap below if you liked it.


Share your thoughts !!

Close Menu

Never Miss an article !

Get the new post delivered straight into your inbox, enter your email and hit the button

You have successfully subscribed to the newsletter

There was an error while trying to send your request. Please try again.

codippa will use the information you provide on this form to be in touch with you and to provide updates and marketing.