You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中如何让print输出对应Bool值?Angela Yu课程相关问题

Swift条件判断中输出正确Bool值的解决方案

问题根源

你代码里的Bool().self是错误用法——每次调用这个表达式都会创建一个全新的布尔值实例,而Swift中布尔类型的默认值是false,所以无论条件判断结果如何,输出的永远是false。另外,第二个条件loveNumber > 40 || loveNumber < 80存在逻辑漏洞:它会匹配所有不等于80的数字,导致第三个分支(else)永远不会被执行。

修正后的代码

根据你的预期需求,这里给出两种可行的修正方案:

方案1:直接输出对应布尔值

利用if-else的顺序特性简化条件,直接输出true或false:

func loveCalli() {
    let loveNumber = Int.random(in: 0...100)
    
    if loveNumber > 80 {
        print(true, "; You'll love each other like Kanya loves Kanya.")
    } else if loveNumber > 40 {
        // 已排除>80的情况,此处只需判断>40即可覆盖41-80区间
        print(false, "; You go together like Coke and Mentos.")
    } else {
        print(false, "; You'll be forever alone.")
    }
}

loveCalli()

方案2:先定义布尔变量再复用

如果需要后续复用这个布尔值,可以先赋值再输出:

func loveCalli() {
    let loveNumber = Int.random(in: 0...100)
    let isGreatMatch: Bool
    
    if loveNumber > 80 {
        isGreatMatch = true
        print(isGreatMatch, "; You'll love each other like Kanya loves Kanya.")
    } else if loveNumber > 40 {
        isGreatMatch = false
        print(isGreatMatch, "; You go together like Coke and Mentos.")
    } else {
        isGreatMatch = false
        print(isGreatMatch, "; You'll be forever alone.")
    }
}

loveCalli()

关键注意点

  • 直接用true/false表示布尔值,不要通过Bool()创建默认实例
  • 条件判断要避免逻辑重叠,利用分支顺序简化判断条件

内容的提问来源于stack exchange,提问作者BenGee333

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 02:37:36