Swift – 如何知道循环何时结束?

请原谅我,因为我很快就熟悉了,而且一般编程。

相信我,当我说我努力了解这一点,但我根本不能,也不会很感激任何帮助。

说我有这个function:

func loop() { for var i=0; i<5; i++ { println(i) } } 

我想打印到日志“循环已经完成”,一旦这个循环已经完成并完成运行,我将如何做到这一点? 如果我做:

 func loop() { for var i=0; i<5; i++ { println(i) println("loop has finished") } } 

那么每当我递增时,“循环已经完成”被打印。

我试过阅读closures和完成处理程序,但这一切都在我的头上,而我真的不明白我会如何实现上述任务。

如果有一位天使能够告诉我如何完成我的上面的例子,我会在你的债务。

谢谢你对我目前可怜的知识的耐心!

要产生与其他人发布的结果相同的结果,但使用基本的闭包语法:

 func printFunction() { println("loop has finished") } func loopWithCompletion(closure: () -> ()) { for var i=0; i<5; i++ { println(i) } closure() } 

这就是你如何称呼它:

  loopWithCompletion(printFunction) 

Swift 3更新:

 func printFunction() { print("loop has finished") } // New for loop syntax and naming convention func loop(withCompletion completion: () -> Void ) { for i in 0 ..< 5 { print(i) } completion() } 

然后像这样调用它:

 loop(withCompletion: printFunction) 

要么

 loop { print("this does the same thing") } 

这是你试图实现的循环:

 func loop() { for var i=0; i<5; i++ { println(i) println("loop has finished") } } 

循环完成的原因被打印5次是因为它在for循环中。

当循环重复时(在这里input“在此input代码”),括号中的任何内容都将运行

 for var i=0; i<5; i++ { enter code here } 

循环工作的方式是,它会重复,直到条件完成:即i<5 。 你的ivariables从0开始,就像你在var i=0说的那样,每当循环重复时,这个数字增加1,如i++

一旦i 小于5(我等于5或大于5),那么你的for循环后面的代码将被运行。

所以,如果你把你的println(“循环已经完成”)放在for循环之后,你就会知道循环结束时会运行,就像这样:

 func loop() { for var i=0; i<5; i++ { println(i) } println("loop has finished") } 
 func loop() { for var i=0; i<5; i++ { println(i) } println("loop has finished") } 

你的代码不工作的原因是你在循环中有println()语句,就像这样:

 func loop() { for var i=0; i<5; i++ { println(i) println("loop has finished") } } 

所以每次循环都打印出“Finished”。

为了解决这个问题,你需要做的就是在循环之后放置println()语句,如下所示:

 func loop() { for var i=0; i<5; i++ { println(i) } println("loop has finished") } 

瞧。 你的应用程序现在将正常运行!