从控制台循环字符串和总和奇数
fun main(args: Array) { println("Number: ") val num = readLine()!!.toInt() var sum = 0 for (digit in num) { if (digit % 2 != 0) { sum += digit } } println("$sum") }
我需要这个循环遍历数字中的每一个数字,并将所有奇数的数字相加。 它给了我一个错误的数字“For循环范围必须有一个’iterator()’方法”
你不能像Int
一样迭代Int
:
val num = readLine()!!.toInt()
你可以修复它没有一个循环,并使用标准函数map
, filter
和sum
:
val sum = readLine()!!.toCharArray() .map { it.toString().toInt() } .filter { it % 2 != 0 } .sum()
偶数的filter
条件是it % 2 == 0
编辑
为了你的功课,做这个:
val num = readLine()!!.toCharArray() var sum = 0 for (a in num) { val intVal = a.toString().toInt() if (intVal % 2 != 0) { sum += intVal } }