我正在尝试创建一个BMI计算器,将用户的身高和体重作为输入,然后计算他们的BMI;从那里开始,它使用一系列if-else语句向用户返回一条消息,告知用户是否健康/过度/不足。我没有问题让程序返回计算出的BMI值;但是当我合并if-else语句时,我得到了"无法转换类型' String'的返回表达式。返回类型' Float'"错误。
这是我的代码(到目前为止,我只做了一个if-else语句):
import UIKit
func bodyMassIndex (userHeight : Float, userWeight : Float) -> String {
let userHeightSquared = (userHeight*userHeight)
let userWeight = userWeight
let userBMI = (userWeight/userHeightSquared)
return userBMI
if userBMI > 25 {
return "Overweight"
}
}
print(bodyMassIndex (userHeight : 1.82, userWeight: 90.7))
答案 0 :(得分:1)
你的逻辑在这里看起来有点困惑:
return userBMI
if userBMI > 25 {
return "Overweight"
}
你应该做什么功能?返回BMI号码或描述性字符串? (它试图做到这两点,编译器也不高兴)
如果我是用户,我希望同时看到和这个数字的含义 - 所以你需要两个功能:
func bodyMassIndex (userHeight : Float, userWeight : Float) -> String {
let userHeightSquared = (userHeight*userHeight)
let userWeight = userWeight
let userBMI = (userWeight/userHeightSquared)
return userBMI
}
func bodyMassDiagnosis (bodyMassIndex : Float) {
if userBMI > 25 {
return "Overweight"
}
return "You're doing fine"
}
然后:
let bodyMassIndex = bodyMassIndex(height, weight)
let diagnosis = bodyMassDiagnosis(bodyMassIndex)
self.indexLabel.text = "BMI \(bodyMassIndex)"
self.diagnosisLabel.text = diagnosis
答案 1 :(得分:0)
您只需将Float
的{{1}}值包装到userBMI
。
String