// This program asks the user to select Fahrenheit or Celsius conversion
// and input a given temperature. Then the program converts the given
// temperature and displays the result.
//
// References:
// https://www.mathsisfun.com/temperature-conversion.html
// https://en.wikibooks.org/wiki/Java_Programming
import java.util.*;
class Main {
private static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
// main could either be an if-else structure or a switch-case structure
String choice;
double temperature;
double result;
choice = getChoice();
// if-else approach
if (choice.equals("C") || choice.equals("c")) {
temperature = getTemperature("Fahrenheit");
result = calculateCelsius(temperature);
displayResult(temperature, "Fahrenheit", result, "Celsius");
} else if (choice.equals("F") || choice.equals("f")) {
temperature = getTemperature("Celsius");
result = calculateFahrenheit(temperature);
displayResult(temperature, "Celsius", result, "Fahrenheit");
} else {
System.out.println("You must enter C to convert to Celsius or F to convert to Fahrenheit!");
}
// switch-case approach
switch (choice) {
case "C":
case "c":
temperature = getTemperature("Fahrenheit");
result = calculateCelsius(temperature);
displayResult(temperature, "Fahrenheit", result, "Celsius");
break;
case "F":
case "f":
temperature = getTemperature("Celsius");
result = calculateFahrenheit(temperature);
displayResult(temperature, "Celsius", result, "Fahrenheit");
break;
default:
System.out.println("You must enter C to convert to Celsius or F to convert to Fahrenheit!");
}
}
public static String getChoice() {
String choice;
System.out.println("Enter C to convert to Celsius or F to convert to Fahrenheit:");
choice = input.nextLine();
return choice;
}
public static double getTemperature(String label) {
double temperature;
System.out.println("Enter " + label + " temperature:");
temperature = input.nextDouble();
return temperature;
}
public static double calculateCelsius(double fahrenheit) {
double celsius;
celsius = (fahrenheit - 32) * 5 / 9;
return celsius;
}
public static double calculateFahrenheit(double celsius) {
double fahrenheit;
fahrenheit = celsius * 9 / 5 + 32;
return fahrenheit;
}
public static void displayResult(double temperature, String fromLabel, double result, String toLabel) {
System.out.println(Double.toString(temperature) + "° " + fromLabel + " is " + result + "° " + toLabel);
}
}