我正在努力解决这个任务
使用循环内的标准将小于或等于100的所有奇数添加到奇数数组中
我尝试了以下方法:
var oddNumbers = [Int]()
var numbt = 0
for newNumt in 0..<100 {
var newNumt = numbt + 1; numbt += 2; oddNumbers.append(newNumt)
}
print(oddNumbers)
这将导致:
1,3,5,7,9,…199
我的问题是:为什么它会打印100以上的数字,尽管我指定了0到100之间的范围?
最佳答案
你犯了一个错误:
for newNumt in 0..<100 {
var newNumt = numbt + 1; numbt += 2; oddNumbers.append(newNumt)
}
循环内定义的变量
newNumt
不会影响在newNumt
语句中声明的变量for
。因此,for
循环打印出前100个奇数,而不是0到100之间的奇数。如果需要使用
for
循环:var odds = [Int]()
for number in 0...100 where number % 2 == 1 {
odds.append(number)
}
或者:
let odds = (0...100).filter { $0 % 2 == 1 }
将从包含0到100项的数组中筛选奇数。要获得更好的实现,请使用
stride
运算符:let odds = Array(stride(from: 1, to: 100, by: 2))
关于swift - 在swift中循环使用奇数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41204123/