【发布时间】:2018-08-19 01:53:49
【问题描述】:
考虑以下代码:
let value = "ABCDE"
for letter in value {
print(letter)
}
打印出来:
A
B
C
D
E
现在考虑假设代码,当它找到“2”时,它会在循环中向前跳过 2。这是显示我要问的伪代码...
let value = "AB2DE"
for letter in value {
if letter == "2" {
continue 2 <-- Does Swift support something similar to this?
}
print(letter)
}
以上将使输出看起来像这样:
A
B
E
注意:当然,我可以通过管理跳过计数器轻松实现这一点,然后使用continue,在我进行时递减计数器,或者,如果源支持下标,正如其他人建议的那样,我可以使用我在其中管理自己的索引的while 循环。有无数种方法可以解决这个假设的问题,但这不是我的问题的意图。
我的问题是专门找出语言本身是否支持一次跳过多个 for 循环的迭代(例如 continueMany 或 continue x)。
【问题讨论】:
-
那是使用固定间隔。我需要一些有条件的东西。我认为使用我自己的索引的“while”循环是可行的方法。
-
您是否期望该语言为您将字符串解码为整数? :)
-
另外,是否应该为剩余的字符保留新解码的 int?还是应该只使用一次?
-
@MarqueIV:您将遍历集合 indices, 并有条件地将其推进一个或多个。与下面 rmaddy 建议的 while 循环基本相同,只是它类似于传统的 for 循环,迭代变量是主体内的 constant,其范围仅限于循环。
标签: swift for-loop swift4 continue