首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xcode“不能将'String‘类型的返回表达式转换为返回类型’Float‘’”

Xcode“不能将'String‘类型的返回表达式转换为返回类型’Float‘’”
EN

Stack Overflow用户
提问于 2017-07-27 21:37:20
回答 2查看 1.6K关注 0票数 0

我正在尝试创建一个BMI计算器,它以用户的身高和体重作为输入,然后计算他们的BMI;从那里,它使用一系列if - are语句向用户返回一条消息,该消息表明他们是否健康/超重/体重不足。我没有问题让程序返回计算出来的BMI值;但是当我合并if-else语句时,我会得到“无法将'String‘类型的返回表达式转换为返回类型’Float‘’”错误。

下面是我的代码(到目前为止,我只做了一次if-far语句):

代码语言:javascript
复制
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))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-27 21:42:00

您只需将userBMIuserBMI值包装到String中即可。

代码语言:javascript
复制
func bodyMassIndex (userHeight : Float, userWeight : Float) -> String {

    let userHeightSquared = (userHeight*userHeight)

    let userWeight = userWeight

    let userBMI = (userWeight/userHeightSquared)

    return String(userBMI)

    if userBMI > 25 {

        return "Overweight"

    } 
}
票数 0
EN

Stack Overflow用户

发布于 2017-07-27 21:53:58

在这里,您的逻辑看起来有点混乱:

代码语言:javascript
复制
return userBMI
if userBMI > 25 {
    return "Overweight"
} 

你的职责是什么?返回BMI数字,还是描述性字符串?(它试图两者兼而有之,而编译器却不高兴)

如果我是一个用户,我希望看到数字和关于它的含义的声明-所以您需要两个函数:

代码语言:javascript
复制
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"
} 

然后:

代码语言:javascript
复制
let bodyMassIndex = bodyMassIndex(height, weight)
let diagnosis = bodyMassDiagnosis(bodyMassIndex)
self.indexLabel.text = "BMI \(bodyMassIndex)"
self.diagnosisLabel.text = diagnosis
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45361430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档