gpt4 book ai didi

xcode - 使用一个变量更新另一个变量时如何避免此错误?

转载 作者:行者123 更新时间:2023-11-30 10:13:21 25 4
gpt4 key购买 nike

我正在尝试使用一个变量(直径)与另一个变量(baseCurve)配合使用,这样直径每增加 0.5,baseCurve 就会向下调整 0.25,而直径每减少 0.5,baseCurve 就会向下调整 0.25。上调0.25。

通过单击“增加”或“减少”按钮,直径以 0.1 为增量进行调整。看起来很简单,但我无法解决当用户添加小于 0.5,然后反转方向时出现的问题。

示例(代码按预期工作):起始直径 = 9.0;起始基曲线 = 42.50

用户点击“增加”5x,现在直径 = 9.5;基础曲线 = 42.25

问题示例:起始直径 = 9.0; 起始基曲线 = 42.50

用户点击“增加”1x,现在直径 = 9.1;基础曲线 = 42.50

然后用户单击“减小”1x,现在直径 = 9.0; 基础曲线 = 42.75。

问题是,不应该进行任何调整,但我的代码设置为根据模数结果进行调整,从而产生了问题。

任何人都可以向我指出一种基本上允许用户将直径每净变化 0.5 调整 0.25 的方法吗?我所采取的使用计数器和模数检查的方法不起作用,至少在我设置它时是这样。我也尝试过切换,但无法避免同样的问题。有什么方法可以使用几个 bool 值来完成这项工作吗?提前谢谢了。

var adjustmentSum = 0
var baseCurve = 45.00
var diameter = 9.0
let diameterAdjustmentValue : Float = 0.1
let baseCurveAdjustmentValue : Float = 0.25


@IBAction func increaseDiameter(sender: AnyObject) {

adjustmentSum++

diameter = diameter + diameterAdjustmentValue

if adjustmentSum % 5 == 0 {

baseCurve = baseCurve - baseCurveAdjustmentValue
}
}

@IBAction func decreaseDiameter(sender: AnyObject) {

adjustmentSum--

diameter = diameter - diameterAdjustmentValue

if adjustmentSum % 5 == 0 {

baseCurve = baseCurve + baseCurveAdjustmentValue
}
}

最佳答案

如果我正确理解你的问题,你甚至不需要使用模运算符。您只需保留增量/减量的常规计数器,并在每次对 baseCurve

进行更改时将其重置为零
var adjustmentSum = 0
var baseCurve = 45.00
var diameter = 9.0
let diameterAdjustmentValue : Float = 0.1
let baseCurveAdjustmentValue : Float = 0.25


@IBAction func increaseDiameter(sender: AnyObject) {

adjustmentSum++

diameter = diameter + diameterAdjustmentValue

if adjustmentSum == 5 {

baseCurve = baseCurve - baseCurveAdjustmentValue
adjustmentSum = 0
}
}

@IBAction func decreaseDiameter(sender: AnyObject) {

adjustmentSum--

diameter = diameter - diameterAdjustmentValue

if adjustmentSum == 5 {

baseCurve = baseCurve + baseCurveAdjustmentValue
adjustmentSum = 0
}
}

关于xcode - 使用一个变量更新另一个变量时如何避免此错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31688030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com