【问题标题】:Extremely basic loop question telling whether number is even/odd非常基本的循环问题,告诉数字是偶数还是奇数
【发布时间】:2020-04-30 13:11:39
【问题描述】:
var currentnum: Int = 1

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

你好。我正在尝试“创建一个从 1 迭代到 100 的循环,以打印出迭代中的当前数字是偶数还是奇数。”当我运行上述代码时,我收到“错误:操作符后的预期表达式”。我的代码有什么问题(我是编程新手)。谢谢!

【问题讨论】:

  • “当我运行上面的代码时,我收到“错误:操作符后的预期表达式。”“不,你没有。你“运行上面的代码”。您无法运行代码,因为您无法编译代码:它是无效的 Swift。 — 您的代码的一个问题是您有 两个 变量,称为 currentnum:一个在第一行定义 (var),一个在第二行定义 (for)。你需要再考虑一下。提示:for...in已经在每次循环中递增,所以你根本不需要声明currentnum += 1
  • 感谢您的澄清!
  • 我可以给你一个不需要 for 循环的花哨的衬垫。你有兴趣看看吗?
  • @Newbie 如果您有一个好的答案,请将其作为答案。评论不稳定;有用的答案将永远有用。

标签: swift loops for-loop int


【解决方案1】:

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

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

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

希望这会有所帮助!

【讨论】:

  • 感谢您的帮助!
【解决方案2】:

与某些语言不同,您不需要在进入 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")
    }
}

【讨论】:

  • 感谢您的帮助!
【解决方案3】:

您无需在代码中声明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")
  }
}

祝你好运!

【讨论】:

  • 感谢您的帮助!
【解决方案4】:

根据 cmets 中的请求,一个没有 for 循环的衬垫

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

【讨论】:

    【解决方案5】:

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

    【讨论】:

    • 感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2011-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-31
    • 2015-07-22
    • 1970-01-01
    • 2014-02-12
    相关资源
    最近更新 更多