这儿每天共享一个 iOS 的新知识,快来重视我吧
前语
昨天的文章讲了 swift 中常见的循环,今日来讲讲跟循环相关的另外一个小知识。
swift 根底:讲一讲 swift 中的循环
在 for-in
循环中,有 continue
和 break
两个用来中止循环的要害字,continue
用来跳出本次循环,进入下次循环。break
用来中止整个迭代。
可是我们有没有想过,如果在一个多层嵌套的 for-in
循环中,这两个要害字的表现是什么?
实践测验下来,continue
和 break
在多层嵌套的 for-in
循环中只会效果在当时的那一层循环,举个比如:
foriin0..<3{
print("i=\(i)")
forjin0..<3{
ifj==1{
break
}
print("j=\(j)")
}
}
//i=0
//j=0
//i=1
//j=0
//i=2
//j=0
根据终究的打印情况来看,break
仅仅中止了内层的循环,而没有影响外层的循环。
循环标签
仍是上边的比如,如果我想要在内层的循环中 break
掉外层的循环,应该怎么做呢?
swift 中有个 for-in
的符号句子,叫做循环标签(Loop Labels),专门用来处理这个问题。
循环标签答应你在内层循环中运用 break
或 continue
句子来操控外层循环的执行,或许在某些情况下跳过多层循环的一部分:
outerLoop:foriin0..<3{
print("i=\(i)")
forjin0..<3{
ifj==1{
breakouterLoop
}
print("j=\(j)")
}
}
//i=0
//j=0
在上述示例中,我们界说了两个循环,外层循环运用标签 outerLoop
符号。在达到条件后,运用 break outerLoop
来直接退出外层循环。
在其他的循环中也能够运用:
while 循环
outerLoop:whilei<3{
print("i=\(i)")
i+=1
forjin0..<3{
ifj==1{
breakouterLoop
}
print("j=\(j)")
}
}
//i=0
//j=0
repeat 循环
outerLoop:repeat{
print("i=\(i)")
i+=1
forjin0..<3{
ifj==1{
breakouterLoop
}
print("j=\(j)")
}
}whilei<3
//i=0
//j=0
下面是一些有关循环标签的要害要点
-
标签命名:标签称号是我们自己界说的,能够根据需要选择有语义的称号。标签称号后边跟着冒号
:
。 -
运用场景:break 和 continue 句子都能够运用循环标签。
-
慎重过度运用:尽管循环标签在某些情况下十分有用,但过度运用它们可能会导致代码复杂性增加,难以理解。
这儿每天共享一个 iOS 的新知识,快来重视我吧
本文同步自微信大众号 “iOS新知”,每天按时共享一个新知识,这儿仅仅同步,想要及时学到就来重视我吧!