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.

References

License

Icon for the Creative Commons Attribution-ShareAlike 4.0 International License

Programming Fundamentals Copyright © 2018 by Authors and Contributors is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License, except where otherwise noted.

Share This Book