Java Program to Find the Largest of Three Numbers

This article is created to cover multiple programs in Java that find and print the largest of three numbers, entered by the user at run-time of the program. Here is the list of programs covered by this article:

Find the largest of three numbers using if...else

The question is: write a Java program to find the largest of three given numbers. The program given below has its answer:

import java.util.Scanner;

public class CodesCracker
{
   public static void main(String[] args)
   {
      int a, b, c, large;
      Scanner scan = new Scanner(System.in);
      
      System.out.print("Enter the First Number: ");
      a = scan.nextInt();
      System.out.print("Enter the Second Number: ");
      b = scan.nextInt();
      System.out.print("Enter the Third Number: ");
      c = scan.nextInt();
      
      if(a>b && a>c)
         large = a;
      else if(b>a && b>c)
         large = b;
      else
         large = c;
      
      System.out.println("\nLargest = " +large);
   }
}

The snapshot given below shows the sample run of the above program, with user input 1, 2, and 3 as the first, second, and third numbers to find and print he largest among these three numbers:

java find largest of three numbers

Here is another sample run with user input 1, 3, and 2 as three numbers:

find largest of three numbers in java

Find the largest of three numbers using Nested if...else

This program was created by implementing the actual logic behind finding the largest number among three given numbers, using nested if...else.

import java.util.Scanner;

public class CodesCracker
{
   public static void main(String[] args)
   {
      int a, b, c, large;
      Scanner scan = new Scanner(System.in);
      
      System.out.print("Enter Three Numbers: ");
      a = scan.nextInt();
      b = scan.nextInt();
      c = scan.nextInt();
      
      if(a>b)
      {
         if(b>c)
            large = a;
         else
         {
            if(c>a)
               large = c;
            else
               large = a;
         }
      }
      else
      {
         if(b>c)
            large = b;
         else
            large = c;
      }
      
      System.out.println("\nLargest = " +large);
   }
}

Here is its sample run with user input 20, 10, and 30 as three numbers:

java program largest of three numbers

Find the largest of three numbers using a conditional operator

This is the last program of this article, created using a conditional operator or ternary operator, that is, I've used the previous program to wrap the if...else into a conditional operator:

import java.util.Scanner;

public class CodesCracker
{
   public static void main(String[] args)
   {
      Scanner scan = new Scanner(System.in);
      
      System.out.print("Enter Three Numbers: ");
      int a = scan.nextInt();
      int b = scan.nextInt();
      int c = scan.nextInt();
      
      
      int large = (a>b) ? ((b>c)?a:(c>a)?c:a) : (b>c)?b:c;
      
      System.out.println("\nLargest = " +large);
   }
}

In the following statement, from the above program:

int large = (a>b) ? ((b>c)?a:(c>a)?c:a) : (b>c)?b:c;

First, the code (condition) a>b gets evaluated. If this code is evaluated to be True, then the following code:

((b>c)?a:(c>a)?c:a)

will get evaluated; otherwise, the following code:

(b>c)?b:c

will get evaluated. Let's suppose the condition a>b evaluates to be True. Therefore, the following code:

((b>c)?a:(c>a)?c:a)

will get evaluated in a way that the condition b>c gets evaluated. If this condition is evaluated to be True, then

a

gets evaluated, otherwise:

(c>a)?c:a)

gets evaluated. This process continues until the whole expression leaves a single variable, i.e., a, b, or c. Let's demonstrate the statement using the example given below.

How the Largest of Three Numbers Gets Calculated Using a Conditional Operator

For example, if a=20, b=10, and c=30. Then the statement:

int large = (a>b) ? ((b>c)?a:(c>a)?c:a) : (b>c)?b:c;

gets evaluated as, first, the code a>b or 20>10 evaluates to be True, therefore the code ((b>c)?a:(c>a)?c:a) gets evaluated.

That is, the code (b>c) or (10>30) evaluates to be False, therefore the code (c>a)?c:a gets evaluated.

That is, the code c>a or 30>20 evaluates to be True, therefore the code c gets evaluated. That is, there is no more code to execute as the final variable is c; therefore, the value of c, which is 30, will get initialized to large. That's it.

Same Program in Other Languages

Java Online Test


« Previous Program Next Program »


Liked this post? Share it!