极为基本的循环题,告诉你数字是否是偶数。

问题描述 投票:0回答:1
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的迭代循环,打印出迭代中的当前数字是偶数还是奇数"。当我运行上述代码时,我收到 "错误:操作符后有预期表达式"。我的代码有什么问题(我是编程新手)。谢谢!我的代码有什么问题?

swift loops for-loop int
1个回答
0
投票

你不需要声明 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")
  }
}

祝您好运!


1
投票

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

0
投票

你应该去掉这个表达式 currentnum += 1.因为你使用的是In . 范围 操作员不需要递增计数器。In . Range操作符会处理这个问题。这与Java或C++的基本for循环不同,在那里你需要递增你的计数器变量。

此外,第一个声明的变量currentnum永远不会被使用,这个变量也可以被删除。这个变量也可以被删除。

你的算法的其余部分看起来很好,应该可以用。

希望能帮到你!


0
投票

根据评论中的要求,在没有for循环的情况下,做了一条线。

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

-1
投票

@BeginnerCoderGirl 我已经修改了你的代码,请检查一下,从代码中删除currentnum += 1,然后运行。

© www.soinside.com 2019 - 2024. All rights reserved.