非常基本的循环问题,判断数字是否为 even/odd

Extremely basic loop question telling whether number is even/odd

var currentnum: Int = 1

for currentnum in 1...100{
  if (currentnum % 2) != 0 {
    print("Odd number")
  }
  else{
    print("Even number")
  }
  currentnum += 1
}

您好。我正在尝试 "create a loop that iterates from 1 to 100 that prints out whether the current number in the iteration is even or odd." 当我 运行 上面的代码时,我收到 "error: expected expression after operator." 我的代码有什么问题(我是编程新手)。谢谢!

你应该去掉这个表达式 currentnum += 1。 因为您使用的是 In .. Range 运算符,所以不需要递增计数器。 In .. Range Operator 会处理这个。这与 Java 或 C++ 中的基本 for 循环不同,您需要递增计数器变量。

此外,第一个声明的变量 currentnum 从未被使用过。这个变量也可以删除。

你算法的其余部分看起来不错,应该可以工作!

希望对您有所帮助!

您无需在代码中声明 var currentnum: Int = 1 并递增 currentnum += 1for-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")
    }
}

@BeginnerCoderGirl 我已经更改了您的代码,请检查仅从代码中删除 currentnum += 1 和 运行

根据评论中的要求,一个没有 for 循环的衬里

Array(1...100).map{[=10=] % 2 == 0 ? print("\([=10=]) is even") : print("\([=10=]) is odd") }