27.5.6: Swift Examples
-
- Last updated
- Save as PDF
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 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
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
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
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
- Wikiversity: Computer Programming