GivenPie
GivenPie

Reputation: 1489

Java debug help needed: display largest of 3 numbers

This is a program that is supposed to prompt the user to enter three numbers and then display the largest of these numbers. However, there are logic errors in it. I'm stuck on trying to figure out where this little bugger is. Please use your expertise to lend me a hand. I am a student, so please don't rage on me \:p

import java.util.*;
public class HA8LargestErr {
    private int num1;
    private int num2;
    private int num3;

    public HA8LargestErr() {
        num1 = 0;
        num2 = 0;
        num3 = 0;
    }

    public void  getNumsFromUser() {
        Scanner input = new Scanner (System.in);
        System.out.println("Enter three numbers: ");
        num1 = input.nextInt();
        num2 = input.nextInt();
        num3 = input.nextInt();
    }

    public int returnLargest() {
        if (num1 > num2 && num1 > num3)
            return num1;
        if (num2 > num3 && num2 > num1)
            return num2;
        return num3;
    }


    public static void main(String[] args) {
        HA8LargestErr data = new HA8LargestErr();

        data.getNumsFromUser();
        System.out.println ("The largest is : " + data.returnLargest());
    }
}

Upvotes: 0

Views: 699

Answers (1)

Ben van Gompel
Ben van Gompel

Reputation: 745

Replace your implementation of returnLargest with

public int returnLargest() {
    if (num1 >= num2 && num1 >= num3)
        return num1;
    if (num2 >= num3)
        return num2;
    return num3;
}

Or use Math.max as suggested above.

Edit:

You need to use >= instead of > because otherwise num3 will be returned when num1 and num2 are equal and larger than num3.

Upvotes: 2

Related Questions