Dave Braunschweig
Temperature
// 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); } }
Output
Enter C to convert to Celsius or F to convert to Fahrenheit: c Enter Fahrenheit temperature: 100 100.0° Fahrenheit is 37.77777777777778° Celsius Enter C to convert to Celsius or F to convert to Fahrenheit: f Enter Celsius temperature: 100 100.0° Celsius is 212.0° Fahrenheit Enter C to convert to Celsius or F to convert to Fahrenheit: x You must enter C to convert to Celsius or F to convert to Fahrenheit.