Ios 两个if语句之间的差异+;还有一个if语句,一个if语句,还有一个if语句?

Ios 两个if语句之间的差异+;还有一个if语句,一个if语句,还有一个if语句?,ios,swift,Ios,Swift,我使用这些语句在进度条上设置进度,具体取决于seconds变量。计时器对象每隔1秒调用一次下面的函数。7秒钟后,调用refreshApp()函数 func runTimedCode() { if seconds == 0 { self.progressView.setProgress(Float(self.seconds)/Float(7), animated: false) refreshApp() seconds += 1 }

我使用这些语句在进度条上设置进度,具体取决于
seconds
变量。计时器对象每隔1秒调用一次下面的函数。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秒时的位填充)


有人能帮我理解为什么行为会改变吗?谢谢!

当您将
如果秒==7
更改为
如果秒==7
,您将输入第一个代码块,当
0
时输入第三个代码块。如果您使用
如果秒==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")
}
block 1
block 3