两个if语句+和else和另一个if语句,另一个if和另一个之间的区别?

时间:2018-12-16 19:41:57

标签: ios swift

我正在使用这些语句在进度条上设置进度,具体取决于seconds变量。下面的函数每1秒被Timer对象调用一次。 7秒钟后,将调用refreshApp()函数。

func runTimedCode() {

    if seconds == 0 {
        self.progressView.setProgress(Float(self.seconds)/Float(7), animated: false)
        refreshApp()
        seconds += 1
    }
    else if seconds == 7 {
        self.progressView.setProgress(Float(self.seconds)/Float(7), animated: false)
        seconds = 0
    } else {
        self.progressView.setProgress(Float(self.seconds)/Float(7), animated: false)
        seconds += 1
    }
}

它可以正常工作,但是当我将第二条语句设为if seconds == 7 {而不是else if seconds == 7时,进度条似乎不是从一个完全空的位置开始(从7处的完全填充处跳转秒,直到1秒后填充)。

有人可以帮助我了解行为改变的原因吗?谢谢!

1 个答案:

答案 0 :(得分:2)

else if seconds == 7更改为if seconds == 7时,当seconds为{{1}时,您将输入第一行代码 }。如果您使用0,则在else if seconds == 7满足后,整个if语句就会完成。

if seconds == 0
let seconds = 0

if seconds == 0 {
    print("block 1")
}
else if seconds == 7 {
    print("block 2")
} else {
    print("block 3")
}
block 1
if seconds == 0 {
    print("block 1")
}
if seconds == 7 {
    print("block 2")
} else {
    print("block 3")
}