我正在尝试编写一个程序,该程序告诉一个短语是否是回文。这是本教程要我生成的代码:
var text = ["h", "e", "l", "l", "o"]
var reversed = [String]()
var counter = text.count - 1
while counter >= 0 {
reversed.append(text[counter])
counter -=1
}
我不知道为什么在用text.count定义计数器变量后必须添加-1。 在while循环中计数器-= 1是否足够?
答案 0 :(得分:1)
这是因为arrays
中的Swift
(例如保存您的文本的字符串数组)是zero based
。
即它们的第一个元素位于位置0,最后一个元素位于位置array.count-1
。
因此,手动遍历数组时,人们希望在[0]和[array.count-1]
之间进行迭代。
通常人们甚至不会考虑这一点,因为您通常不会费心使用手动循环,而会使用fast enumeration
或for in
。
例如
var text = ["h", "e", "l", "l", "o"]
for letter in text.reversed() {
print(letter)
}