从控制台循环字符串和总和奇数

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() 

你可以修复它没有一个循环,并使用标准函数mapfiltersum

 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 } }