Programming Fundamentals/Condition Examples Swift

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 for a Fahrenheit temperature, 
// converts the given temperature to Celsius,
// and displays the results.
//
// References:
//     https://www.mathsisfun.com/temperature-conversion.html
//     https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html

func main() {
    var choice: String
    
    choice = getChoice()
    if choice == "C" || choice == "c" {
        processCelsius()
    } 
    else if choice == "F" || choice == "f" {
        processFahrenheit()
    } 
    else {
        print("You must enter C to convert to Celsius or F to convert to Fahrenheit.")
    }
}

main()

Switch[edit]

func main() {
    var choice: String
    
    choice = getChoice()
    switch choice {
        case "C", "c":
            processCelsius()
        case "F", "f":
            processFahrenheit()
        default:
            print("You must enter C to convert to Celsius or F to convert to Fahrenheit.")
    }
}

Supporting Functions[edit]

func getChoice() -> String {
    var choice: String

    print("Enter C to convert to Celsius or F to convert to Fahrenheit:")
    choice = readLine(strippingNewline: true)!

    return choice
}

func processCelsius() {
    var temperature: Double
    var result: Double

    temperature = getTemperature(scale:"Fahrenheit")
    result = calculateCelsius(fahrenheit:temperature)
    displayResult(temperature:temperature, fromScale:"Fahrenheit", result:result, toScale:"Celsius")
}

func processFahrenheit() {
    var temperature: Double
    var result: Double

    temperature = getTemperature(scale:"Celsius")
    result = calculateFahrenheit(celsius:temperature)
    displayResult(temperature:temperature, fromScale:"Celsius", result:result, toScale:"Fahrenheit")
}

func getTemperature(scale: String) -> Double {
    var temperature: Double
    
    print("Enter " + scale + " temperature:")
    temperature = Double(readLine(strippingNewline: true)!)!
    
    return temperature
}

func calculateCelsius(fahrenheit: Double) -> Double {
    var celsius: Double
    
    celsius = (fahrenheit - 32) * 5 / 9
    
    return celsius
}

func calculateFahrenheit(celsius: Double) -> Double {
    var fahrenheit: Double
    
    fahrenheit = celsius * 9 / 5 + 32
    
    return fahrenheit
}

func displayResult(temperature: Double, fromScale: String, result: Double, toScale: String) {
    print(String(temperature) + "° " + fromScale + " is " + String(result) + "° " +  toScale)
}

Output[edit]

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