【问题标题】:Starting a method when a value goes outside its bounds当值超出其范围时启动方法
【发布时间】:2014-10-24 19:40:16
【问题描述】:

我在下面的代码中遇到了一些麻烦。本质上,每当值介于 45 和 46 之间并随后超出这些范围时,我都会尝试启动一个方法。

if(value >= 45 && value < 46){
    if(value >= 46 && value < 45){
        [self updateTwo];
    }
    else{
        [frequencyImage setImage:A3StaveSemiQuaver];
    }
}

我已经使用 NSLog 来尝试调试这个问题,我发现第二个 if 语句没有触发。

编辑: 很抱歉造成混淆,我认为最好的解释方式是“价值”与设备麦克风发出的声音频率(以赫兹为单位)有关。它不断检查频率并更新“值”。如果值变为 45 然后随后变为 45 以外的值,我想找到一种方法来触发方法。例如说值是 25、44、45、10 - 我希望方法在 10 上触发. 我不是最擅长解释它,为此道歉!感谢您的所有帮助:)

【问题讨论】:

  • 如果第一个 if 块的值必须大于 45 且小于 46,然后您的嵌套 if 块要求该值大于 46 且小于45...那永远不会发生?
  • 我还是不太确定你在找什么……所以你希望这个值在 45 到 46 之间?
  • 这没有意义。如果该值大于或等于 45 并且小于 46 只能是 45。下一条语句正在检查一个大于或等于 46 的值(我们已经从上面知道它是 45,所以这是一个失败)和也有条件地你要求值小于 45。你永远不能有一个大于 46 但小于 45 的数字。你到底想做什么?
  • @latenitecoder 谢谢你解释得比我好 :)
  • @evan.stoddard 没问题 :) - 我不确定 jamiemaison 想要达到什么目的。如果他回复我相信我们可以帮助他:)

标签: objective-c if-statement methods frequency between


【解决方案1】:

您的2nd if 语句位于第一个if

因此,请查看您的 first if 与仅 45 的数字匹配(检查)。 您的second if 将在first if 之后触发,并且仅当first iftrue 这意味着您的号码是45 -> 将始终是false,因为它的语句匹配数字> = 46(仅当> = 46 它返回 true ,但你的号码不能 >= 46 ,如果它通过了 first if 它必须只有 45 )。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 2012-12-19
    • 2011-08-02
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    相关资源
    最近更新 更多