Q:

Conversion Table

I have been tasked with creating a conversion table, and I cannot figure out why my output on one side is repeating as the other finishes their loop. Can anyone help? Below is my code:
public class Conversion {

    public static double celsiusToFahrenheit(double celsius) {
        // make conversion
        double f = (celsius * 9 / 5) + 32;
        return f;

    }

    public static double fahrenheitToCelsius(double fahrenheit) {
        // make conversion
        double c = (fahrenheit - 32.0) * 5 / 9.0;
        return c;

    }

    public static void main(String args[]) {

        double c;
        double f;
        //Display table
        System.out.println("Celsius \t Fahrenheit \t | \tFahrenheit \t Celsius");

        //When i = 40, if i is greater than, or equal to 31, decriment until false
        for (double i = 40; i >= 31; i--) {
            c = i;

            //When j = 120, if j is greater than, or equal to 30, decriment by 10 until false
            for (double j = 120; j >= 30; j -= 10) {
                f = j;

                //Show result
                System.out.println(c + "\t\t " + (Math.round(celsiusToFahrenheit(c) * 10.0) / 10.0) + "\t\t |\t" + f + "\t\t" + (Math.round(fahrenheitToCelsius(f) * 100.0) / 100.0));

            }
        }
    }
}

A:

This is due to the nested loop you've introduced.
for (double i = 40; i >= 31; i--) {
    c = i;

    //When j = 120, if j is greater than, or equal to 30, decriment by 10 until false
    for (double j = 120; j >= 30; j -= 10) {
        f = j;

        //Show result
        System.out.println(c + "\t\t " + (Math.round(celsiusToFahrenheit(c) * 10.0) / 10.0) + "\t\t |\t" + f + "\t\t" + (Math.round(fahrenheitToCelsius(f) * 100.0) / 100.0));

    }
}

Think of a double loop like the hands of a watch face.  The inner loop moves faster than the outer loop (like the minute hand moves faster than the hour hand).  What this means is that for every iteration in the Celsius loop, we have ten iterations in the Fahrenheit loop, just as if we were looking at a watch face (we'd have 60 minutes for every 1 hour in that scenario).
As a hint, you can actually declare multiple variables inside of your loop to iterate on.  You're going to want to adjust the bounds of the loop condition so that you get the results that you want, but this is a start.
//When i = 40, if i is greater than, or equal to 31, decriment until false
//When j = 120, if j is greater than, or equal to 30, decriment by 10 until false
for (double i = 40, j = 120; i >= 31 && j >= 30; i--, j -= 10) {
    c = i;
    f = j;
    //Show result
    System.out.println(c + "\t\t " + (Math.round(celsiusToFahrenheit(c) * 10.0) / 10.0) + "\t\t |\t" + f + "\t\t" + (Math.round(fahrenheitToCelsius(f) * 100.0) / 100.0));
}

