【发布时间】:2017-12-15 06:52:42
【问题描述】:
我想实现一个函数或某种方式从控制台顺序存储数组。像这样的东西:readLine()!!.toIntArray()
为此使用循环是否方便或可以避免?
然后你可以使用数组的索引来访问它们。
fun main(args: Array<String>) {
myFunction()
}
答:
fun myFunction() {
println(" . First number: ")
val num1:Float = readLine()!!.toFloat()
println(" . Second number: ")
val num2:Float = readLine()!!.toFloat()
println(" . Third number: ")
val num3:Float = readLine()!!.toFloat()
println(" . Fourth number: ")
val num4:Float = readLine()!!.toFloat()
val result:Float = (num1+num2) + (num3*num4)
print("The result is: $result")
}
乙:
fun myFunction() {
println("Enter four numbers ...")
// val numbers:IntArray = intArrayOf(45, 22, 10, 13)
val numbers:IntArray = readLine()!!.toIntArray() //HERE: toIntArray() isn't defined
val result:Int = (numbers[0]+numbers[1]) + (numbers[2]*numbers[3])
print("The result is: $result")
}
在定义数组时,我必须指出我想从控制台读取的值的数量,即数组的大小。
或者是否有其他方法可以停止在控制台中读取数据?
总之,我想从block A转移到block B的想法。
解决方案
println("Enter four numbers ...")
val numbers = readLine()!!.split(" ").map { it.toInt() }
val result:Int = (numbers[0]+numbers[1]) + (numbers[2]*numbers[3])
print("The result is: $result")
【问题讨论】:
-
val numbers = readLine().split(" ").map { it.toFloat() }或it.toInt() -
我把 readLine() 改成了 readLine()!!。太好了,当我有声望时,我会投票给你。
-
很高兴为您提供帮助!