Temperature
// This program displays a temperature conversion table showing Fahrenheit
// temperatures from 0 to 100, in increments of 10, and the corresponding
// Celsius temperatures using While, For, and Do loops.
//
// References:
// https://www.mathsisfun.com/temperature-conversion.html
// https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html
func whileLoop() {
var fahrenheit: Double
var celsius: Double
displayHeading()
fahrenheit = Double(0)
while fahrenheit <= 100 {
celsius = calculateCelsius(fahrenheit:fahrenheit)
displayResult(fahrenheit:fahrenheit, celsius:celsius)
fahrenheit += 10
}
print()
}
func doLoop()
{
var fahrenheit: Double
var celsius: Double
displayHeading()
fahrenheit = Double(0)
repeat
{
celsius = calculateCelsius(fahrenheit:fahrenheit)
displayResult(fahrenheit:fahrenheit, celsius:celsius)
fahrenheit += 10
} while fahrenheit <= 100
print()
}
func forLoop() {
var celsius: Double
displayHeading()
for fahrenheit in stride(from: 0.0, through: 100.0, by: 10.0) {
celsius = calculateCelsius(fahrenheit:fahrenheit)
displayResult(fahrenheit:fahrenheit, celsius:celsius)
}
print()
}
func displayHeading() {
print("F°\tC°")
}
func calculateCelsius(fahrenheit: Double) -> Double {
var celsius: Double
celsius = (fahrenheit ) * 5 / 9
return celsius
}
func displayResult(fahrenheit: Double, celsius: Double) {
print(String(fahrenheit) + "\t" + String(celsius))
}
func main()
{
whileLoop()
doLoop()
forLoop()
}
main()
Output
F° C°
0 -17.77777777777778
10 -12.222222222222221
20 -6.666666666666667
30 -1.1111111111111112
40 4.444444444444445
50 10.0
60 15.555555555555555
70 21.11111111111111
80 26.666666666666668
90 32.22222222222222
100 37.77777777777778
F° C°
0 -17.77777777777778
10 -12.222222222222221
20 -6.666666666666667
30 -1.1111111111111112
40 4.444444444444445
50 10.0
60 15.555555555555555
70 21.11111111111111
80 26.666666666666668
90 32.22222222222222
100 37.77777777777778
F° C°
0 -17.77777777777778
10 -12.222222222222221
20 -6.666666666666667
30 -1.1111111111111112
40 4.444444444444445
50 10.0
60 15.555555555555555
70 21.11111111111111
80 26.666666666666668
90 32.22222222222222
100 37.77777777777778