To keep it short, i wrote a program that asks user to enter 3 variables and outputs them in an order from low value to high.
My problem is with the output. If i have 3 of the same values it causes the program to output the same answer twice. From what i have looked at it, everything is correct and i can not find a solution. Here is the code.
Code:
/**************************************************************************************
** **
** This program asks user to input three names and the time in minutes it took them **
** to finish the race. Output should arrange the names from frist place to last. **
** **
**************************************************************************************/
import java.util.Scanner;
public class RunningTheRace
{
public static void main(String[] args)
{
String name1;
String name2;
String name3;
double time1;
double time2;
double time3;
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter name #1: "); // prompt user to enter name
name1 = keyboard.nextLine();
System.out.print("Enter " + name1 + "'s time: ");
time1 = keyboard.nextDouble();
System.out.println(""); // empty line
keyboard.nextLine(); // eat a line
System.out.print("Enter name #2: ");
name2 = keyboard.nextLine();
System.out.print("Enter " + name2 + "'s time: ");
time2 = keyboard.nextDouble();
System.out.println("");
keyboard.nextLine();
System.out.print("Enter name #3: ");
name3 = keyboard.nextLine();
System.out.print("Enter " + name3 + "'s time: ");
time3 = keyboard.nextDouble();
System.out.println("");
if (time1 <= time2 && time2 != time3) // if time1 is less than or equal to follow through, else go to next statement
{
if (time1 <= time3)
{
System.out.println(name1);
if(time2 <= time3)
{
System.out.println(name2);
System.out.println(name3);
}
else if (time3 <= time2)
{
System.out.println(name3);
System.out.println(name2);
}
}
}
if (time2 <= time1 && time1 != time3 && time3 != time1)
{
if (time2 <= time3)
{
System.out.println(name2);
if(time1 <= time3)
{
System.out.println(name1);
System.out.println(name3);
}
else if (time3 <= time1)
{
System.out.println(name3);
System.out.println(name1);
}
}
}
if (time3 <= time2 && time2 != time1 && time1 != time3)
{
if (time3 <= time1)
{
System.out.println(name3);
if(time1 <= time2)
{
System.out.println(name1);
System.out.println(name2);
}
else if (time2 <= time1)
{
System.out.println(name2);
System.out.println(name1);
}
}
}
}
}
also here is what i get when i set variable 1 as a greater number than variable 2 and variable 3 and keep variable 2 and 3 the same. If I have different values for all of the numbers the program works flawlessly.
any help is appreciated!

