Skip to main content
Engineering LibreTexts

4.13: Java Examples

  • Page ID
    10649
  • Temperature

    The temperature program main function is listed twice, once using if-then-else and once using switch, followed by the supporting functions.

    If Then Else

    // 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.*;
    
    public class Main {
        private static Scanner input = new Scanner(System.in);
    
        public static void main(String[] args) {
            String choice;
            
            choice = getChoice();
            if (choice.equals("C") || choice.equals("c")) {
                processCelsius();
            } 
            else if (choice.equals("F") || choice.equals("f")) {
                processFahrenheit();
            } 
            else {
                System.out.println("You must enter C to convert to Celsius or F to convert to Fahrenheit.");
            }
        }
    

    Switch

        public static void main(String[] args) {
            String choice;
            
            choice = getChoice();
            switch (choice) {
                case "C":
                case "c":
                    processCelsius();
                    break;
                case "F":
                case "f":
                    processFahrenheit();
                    break;
                default:
                    System.out.println("You must enter C to convert to Celsius or F to convert to Fahrenheit.");
            }
        }
    

    Supporting Functions

        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 void processCelsius() {
            double temperature;
            double result;
            
            temperature = getTemperature("Fahrenheit");
            result = calculateCelsius(temperature);
            displayResult(temperature, "Fahrenheit", result, "Celsius");
        }
        
        public static void processFahrenheit() {
            double temperature;
            double result;
            
            temperature = getTemperature("Celsius");
            result = calculateFahrenheit(temperature);
            displayResult(temperature, "Celsius", result, "Fahrenheit");
        }
        
        public static double getTemperature(String scale) {
            double temperature;
            
            System.out.println("Enter " + scale + " 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 fromScale, double result, String toScale) {
            System.out.println(Double.toString(temperature) + "° " + fromScale + " is " + result + "° " + toScale);
        }
    }
    

    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.