The problem
The formula for converting celsius temperature to fahrenheit is °C x 9/5 + 32 = °F
. Write a program that displays temps up to 100 degrees fahrenheit.
Breaking it down
create a method that convert fahrenheit to celsius
/**
* The celsius method converts a Fahrenheit temperature to Celsius.
*
* @param fahrenheit The Fahrenheit temperature.
* @return The equivalent Celsius temperature.
*/
static double celsius(double fahrenheit) {
return ((5.0 / 9.0) * (fahrenheit - 32));
}
Display table header
System.out.println("Fahrenheit\tCelsius");
System.out.println("====================");
Create a loop from 0 to 100
for (int x = 0; x <= 100; x++) {
System.out.print(x);
System.out.print("\t\t");
System.out.print(celsius(x));
System.out.println();
}
Output
Fahrenheit Celsius
====================
0 -17.77777777777778
1 -17.22222222222222
2 -16.666666666666668
3 -16.11111111111111
4 -15.555555555555557
5 -15.0
...
96 35.55555555555556
97 36.111111111111114
98 36.66666666666667
99 37.22222222222222
100 37.77777777777778
Unit tests
@Test
public void test_celsius () {
assertEquals(35, CelsiusToFahrenheitTable.celsius(95), 0);
}
Level Up
- ask user to input temp in fahrenheit and display celsius
- tidy up formatting 1) format celsius output 2) look at the column header