在 for 循环中打印字符串 (ABCDEFG) 中每隔一个字母(如 A、C、E)的问题

问题描述 投票:0回答:2

我如何创建一个 for-in 循环,循环遍历字母表中的字符,并在您不想打印的字母上通过继续下一次迭代来打印每隔一个字母?

我的密码是:

let alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

for letter in alphabet  {
    if letter % 2 {
        continue
    }
    print(letter)
}

它不工作。

我试过运行它,但是没有用。我尝试了 Index,但没有用。

swift string modulo
2个回答
0
投票

您的代码不是有效的 Swift 语法。请注意,如果您想迭代集合索引并检查索引是否偶数,

String.Index
不是一个选项,除非您检查与起始索引的距离。完成你想要的最简单的方法是添加一个布尔变量并在每次迭代后切换它:

let alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
var isEven: Bool = true
for letter in alphabet {
    defer { isEven.toggle() }
    if isEven {
        continue
    }
    print(letter)
}

这将打印:


D
F
H
J
大号
N
P
R
T
V
X
Z


0
投票

另一种方法:

let alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

for i in 0...alphabet.count  {
    if i.isMultiple(of: 2) {
        continue
    }
    print(alphabet[alphabet.index(alphabet.startIndex, offsetBy: i)])
}

输出:

乙 丁 F H 杰 大号 否 P R 吨 V X Z

© www.soinside.com 2019 - 2024. All rights reserved.