Programming Fundamentals/Condition Examples CSharp

From Wikibooks, open books for an open world
Jump to navigation Jump to search

Temperature[edit]

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[edit]

// 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/C_Sharp_Programming

using System;

public class Temperature
{
    public static void Main(string[] args)
    {
        string choice;
        
        choice = GetChoice();
        if (choice == "C" || choice == "c")
        {
            ProcessCelsius();
        }
        else if (choice == "F" || choice == "f")
        {
            ProcessFahrenheit();
        }
        else
        {
            Console.WriteLine("You must enter C to convert to Celsius or F to convert to Fahrenheit.");
        }
    }

Switch[edit]

    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:
                Console.WriteLine("You must enter C to convert to Celsius or F to convert to Fahrenheit.");
                break;
        }
    }

Supporting Functions[edit]

    public static string GetChoice()
    {
        string choice;
        
        Console.WriteLine("Enter C to convert to Celsius or F to convert to Fahrenheit:");
        choice = Console.ReadLine();
        
        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;
        
        Console.WriteLine("Enter " + scale + " temperature:");
        temperature = Convert.ToDouble(Console.ReadLine());
        
        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)
    {
        Console.WriteLine(temperature + "° " + fromScale + " is " + result + "° " + toScale);
    }
}

Output[edit]

Enter C to convert to Celsius or F to convert to Fahrenheit:
 c
Enter Fahrenheit temperature:
 100
100° Fahrenheit is 37.7777777777778° Celsius

Enter C to convert to Celsius or F to convert to Fahrenheit:
 f
Enter Celsius temperature:
 100
100° Celsius is 212° 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[edit]