首页 > 解决方案 > 预期返回“字符串”的函数中缺少返回

问题描述

我正在为 BMI 计算器编写快速代码,为什么会发生错误“在预期返回 'String' 的函数中缺少返回”?有谁可以解释这个的原因?谢谢!

func bmiCalculator (weight: Double, height: Double) -> String {
    let bmi = weight / (height * height)

    if bmi > 25 {
        return "Your BMI is \(bmi). You are overweight"
    } else if bmi >= 18.5 && bmi <= 25 {
    return "Your BMI is \(bmi). You are at a normal weight"
    } else if bmi < 18.5 {
        return "Your BMI is \(bmi). You are underweight"
    }
}

print(bmiCalculator(weight: 70, height: 1.74))

我希望 Xcode 游乐场将根据最后一行的体重和身高值计算 BMI,但它显示错误“预期返回'String'的函数中缺少返回”

标签: swift

解决方案


尽管看起来您已经完全覆盖了此处的值,因此实际上不可能进行任何其他操作,但正在检查语法而没有完全分析上下文。它希望仍然能够确定它的所有返回都以String结果结尾。

func bmiCalculator (weight: Double, height: Double) -> String {
    let bmi = weight / (height * height)

    if bmi > 25 {
        return "Your BMI is \(bmi). You are overweight"
    } else if bmi < 18.5 {
        return "Your BMI is \(bmi). You are underweight"
    }
    return "Your BMI is \(bmi). You are at a normal weight"
}

推荐阅读