var currentnum: Int = 1
for currentnum in 1...100{
if (currentnum % 2) != 0 {
print("Odd number")
}
else{
print("Even number")
}
currentnum += 1
}
你好,我想 "创建一个从1到100迭代的循环,打印出迭代中的当前数字是偶数还是奇数"。我试图 "创建一个从1到100的迭代循环,打印出迭代中的当前数字是偶数还是奇数"。当我运行上述代码时,我收到 "错误:操作符后有预期表达式"。我的代码有什么问题(我是编程新手)。谢谢!我的代码有什么问题?
你不需要声明 var currentnum: Int = 1
在您的代码中,并通过 currentnum += 1
. for-in
循环为你做到了。在Swift中 for-in
语法可以用来循环处理数字、集合甚至字符串的范围。所有的语法都是一样的!
它应该如下。
for currentnum in 1...100{
if (currentnum % 2) != 0 {
print("Odd number")
}
else{
print("Even number")
}
}
祝您好运!
与某些语言不同,您不需要在进入 for-in 循环之前定义索引变量,也不需要手动递增索引。
你也可以使用新的 swift 函数 isMultiple(of:)
而非 modulus
如果你想在一个设定的范围内循环,你可以这样做。
for num in 1...100 {
if num.isMultiple(of: 2) {
print("\(num) is an even number")
} else {
print("\(num) is an odd number")
}
}
如果你在一个数组里有一组值,你可以这样做。
let numbers = [1,5,12,23,25,27,30,32,35]
for num in numbers {
if num.isMultiple(of: 2) {
print("\(num) is an even number")
} else {
print("\(num) is an odd number")
}
}
你应该去掉这个表达式 currentnum += 1
.因为你使用的是In . 范围 操作员不需要递增计数器。In . Range操作符会处理这个问题。这与Java或C++的基本for循环不同,在那里你需要递增你的计数器变量。
此外,第一个声明的变量currentnum永远不会被使用,这个变量也可以被删除。这个变量也可以被删除。
你的算法的其余部分看起来很好,应该可以用。
希望能帮到你!
根据评论中的要求,在没有for循环的情况下,做了一条线。
Array(1...100).map{$0 % 2 == 0 ? print("\($0) is even") : print("\($0) is odd") }
@BeginnerCoderGirl 我已经修改了你的代码,请检查一下,从代码中删除currentnum += 1,然后运行。