【问题标题】:Swift: How do I create a sequence of 'if' statements?Swift:如何创建一系列“if”语句?
【发布时间】:2016-06-28 23:42:27
【问题描述】:

我想知道如何在 if 语句中编写一个序列,就像我想写一个动作序列一样?例如:

如果我有 var touchedBool = Bool(),我如何创建一个 if 语句:

if touchedBool == true 后跟 touchedBool == false 然后

{
   // This happens.
}

【问题讨论】:

  • 你说的跟随是什么意思? else/else if 语句?
  • @AndrewL.- 我只希望在touchedBool 为真时发生一些事情,但随后是假的。因此,如果我在 touchesBegan 内部设置了 touchBool = true 并且在 touchesEnded 内部设置了 touchBool = false,那么我希望发生的事情不是在我触摸或释放时,而是在我触摸时,然后释放我的手指。
  • @AndrewL.- 基本上我不在“&&”之后,因为这意味着当它们同时为真和假时会发生。如果他们都互相关注,我希望它发生。
  • 请在问题中解释清楚
  • 我认为您对您要完成的工作提出了错误的问题,看看按钮上的不同事件,您可能需要使用这些事件来完成您所追求的(无论是)

标签: xcode swift sprite-kit


【解决方案1】:

我相信应该有更好的方法来实现你真正想要的,但我相信你正在寻找的东西是:

var touchedBool = false {
    didSet {
        if oldValue && !touchedBool {
            print("Boom") // Do your stuff here
        }
    }
}

【讨论】:

  • 这是这样做的方法,但我认为你的逻辑倒退了,他希望 oldValue 为 true,newValue 为 false,然后触发一些事件
  • @Knight0fDragon 谢谢,我修好了
【解决方案2】:
var someBool = true

if someBool {
// Do something
} else {
// Do Something
}

【讨论】:

    【解决方案3】:

    对于你的例子,一个简单的 if-else 就可以了:

    var anyBool: Bool = true
    
    if anyBool == true {
      //do something
    } else {
      //do something else
    }
    

    这对于布尔值来说很好用,但对于具有多个选项而不是 true 或 false 的东西来说会很麻烦。为此,我建议使用 switch 语句;

    var anyInt = 1
    
    switch anyInt {
        case 1:
            //do something
        case 2:
            //do something
        case 3:
            //do something
        case 4:
            //do something
        default:
            //do something else
    }
    

    Switch 语句也更加灵活

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-05
      • 1970-01-01
      • 2016-05-20
      • 1970-01-01
      相关资源
      最近更新 更多