Swift技术问询:如何让startNumber每次运行时更新为updatedNumber
解决方案
情况1:同一次运行里从10递减到0
你当前的问题是每次运行代码都会重新把startNumber设为10,而且只是计算了updatedNumber却没更新startNumber本身。如果要在一次代码执行中完成从10减到0的操作,用循环直接更新startNumber即可:
var startNumber = 10 let numberRemoved = 1 // 固定移除数量的话,用常量更合适 while startNumber > 0 { startNumber -= numberRemoved print("你的新总数是 \(startNumber)") } print("总数已经减到0了")
这段代码会循环执行减法操作,每次直接更新startNumber的值,直到它变成0为止,不会重置初始值。
情况2:多次运行代码(每次执行脚本)保留剩余数值
如果需要每次单独运行代码时,接着上次的剩余数值继续减,就得把数值存在外部存储里,比如用UserDefaults(适用于iOS/macOS环境)或者写入本地文件。下面是用UserDefaults的示例:
// 读取上次保存的剩余数,第一次运行默认设为10 var startNumber = UserDefaults.standard.integer(forKey: "RemainingNumber") if startNumber == 0 { startNumber = 10 } let numberRemoved = 1 startNumber -= numberRemoved // 保存更新后的数值,下次运行时读取 UserDefaults.standard.set(startNumber, forKey: "RemainingNumber") if startNumber >= 0 { print("你的新总数是 \(startNumber)") } else { print("总数已经减到0了") }
这样每次运行代码时,会先加载上次保存的数值,更新后再存回去,不会每次重置为10。
内容的提问来源于stack exchange,提问作者drod2030
相关产品推荐
相关产品推荐

