Ternary OperatorTernary Operator

How can we shorten an if-else statement?

The if-statement may not always look elegant, but Java provides a faster and more convenient way to check conditions. It is called the ternary operator, and it has the following syntax:

It looks unclear. Let me explain what is what.

First, we set a condition, for example, 10 > 5, and then we put a question mark ? after it. If the condition evaluates to true, we go to the true block, for example, System.out.println("That's true");. If the condition evaluates to false, we go to the false block, where we might have something like System.out.println("That's not true");.

Let's analyze a more practical example:




We can place a boolean value within a regular System.out.println() because in this case, the toString() method of the Boolean class will be applied to the boolean object. The same situation applies to other data types.

You may have noticed that we used the ternary operator inside the System.out.println(); statement. That's the main purpose of using the ternary operator - you can use it within output statements to significantly reduce the amount of code.

We can also use the ternary operator when initializing or returning values. You'll learn more about returning values in the next section when you will study methods.

Example of using ternary operator when initializing value:



Below is an example code where the ternary operator is replaced with a regular if-statement to help you better understand how it works:



The result is the same, but you can see how much space we save by using the ternary operator.


You have a String variable. Write a code that prints true to the screen if the string contains the letter k, or false if the string does not contain this letter. Use the ternary operator to practice with it.



  1. 1. Use string.contains("k") as the condition;
    1. 2. Use the ternary operator inside System.out.println().

package com.example;

public class Main {
    public static void main(String[] args) {
        String string = "Hey, I contain letter 'k', try to find it!";
        System.out.println(string.contains("k") ? true : false);

Everything was clear?

Section 1. Chapter 6