1. 인풋 파라미터와 아웃풋 파라미터를 이용해 BMI 계산기를 만들어라.
방법 1)
// Q. 인풋 파라미터와 아웃풋 파라미터를 이용해 BMI 계산기를 만들어라.
//
// BMI는 몸무게를 (키 / 100)을 제곱한 것으로 나누어 계산한다.
// Step 1. A = 키 / 100
// Step 2. 몸무게 / A^2
func calBMI(height:Double, weight:Double) -> Double {
var calHeight:Double = height / 100 // Step 1. A = 키 / 100
return weight / (calHeight * calHeight) // Step 2. BMI = 몸무게 / A^2
}
print("당신의 BMI지수는 : \(calBMI(height: 170, weight:50))")
// 결과 :
// 당신의 BMI지수는 : 17.301038062283737
방법 2)
func calBMI(height:Double, weight:Double) -> Double {
return weight / ((height / 100) * (height / 100))
}
print("당신의 BMI지수는 : \(calBMI(height: 170, weight:50))")
코드는 짧지만 유지보수가 힘들다. 그리고 나누기 연산자는 컴퓨터 연산에 무리를 많이 준다. 코드는 짧아졌고 변수 선언도 없어 메모리는 적게 차지하겠지만 오히려 성능은 떨어지면서 유지보수까지 힘들다.
2. Swap 함수
// 함수로 만들어본 스위프트 Swap. 구세대 언어와 달리 임시 변수를 선언할 필요가 없다.
//func swap(a:Int,b:Int) -> (Int,Int) {
// return (b,a)
//}
// 하지만 스위프트에서는 Swap을 기본 제공한다.
var a = 1000
var b = 500
print(a,b) // 결과 : 1000, 500
// 1. 스위프트의 변수 Swap 방법 1
(a,b) = (b,a)
print(a,b) // 결과 : 500, 1000
// 2. 스위프트의 Swap 방법 2
swap(&a,&b)
print(a,b) // 결과 : 1000, 500
// 3. 배열의 값도 변수 Swap이 가능하다.
var arr = [0,1,2,3,4]
arr.swapAt(1,2)
print(arr) // 결과 : [0, 2, 1, 3, 4]
스위프트에는 자체적으로 Swap 함수가 있어 임시 변수 하나를 생성할 필요가 없다.
'개발자 > Swift' 카테고리의 다른 글
Swift (스위프트) 2개의 정수와 연산자를 받아 계산하는 계산기 함수 만들기 (0) | 2020.04.06 |
---|---|
Swift (스위프트) 재귀함수 - 등차급수, 등비급수, 팩토리얼 (0) | 2020.04.04 |
Swift (스위프트) 함수 문법 (0) | 2020.04.03 |
Swift (스위프트) 배열, 딕셔너리, 튜플 (0) | 2020.04.01 |
Swift (스위프트) 연습 첫 번째 (0) | 2020.03.31 |