用循环输入数组

时间:2017-07-21 18:01:48

标签: arrays kotlin

开发人员,我是Kotlin的新手我试图通过使用循环来获取Array中的输入,然后,我通过使用循环打印数组的所有值但是只获取输入而不显示其他块并通过错误这是附加图像上的shiwn

enter image description here

    fun main(args: Array<String>) {

    var arrayint = Array<Int>(5){0}
    var x = 1
        val abc:Int = arrayint.size
     while( x <= abc)
     {
         arrayint[x] = readLine()!!.toInt()
            x++
     }


   for(index in 0..4)
   {
       println(arrayint[index])
   }

}

5 个答案:

答案 0 :(得分:2)

以下是更简洁的

var arrayint = Array<Int>(5) { readLine()!!.toInt() }
for(x in arrayint)
    println(x)

在第一行,我使用一个调用readLine的lambda,而不是使用初始化器lambda {0}。 在第2行,而不是必须知道我的范围(0..4),我让语言为我做(数组是可迭代的)。

答案 1 :(得分:1)

您应该将x <= abc更改为x < abc,将x = 1更改为x = 0。它现在不起作用,因为如果abc = 5和你循环4次然后x = 5 但是Kotlin(和Java)中的数组从索引0开始,这意味着大小为5的数组具有以下索引:0, 1, 2, 3, 4这意味着arrayint[5]不存在,因为5超出范围(> 4

答案 2 :(得分:0)

尝试一下:

fun main (args:Array<String>){

    var arrayint = Array<Int>(5){0}
    var x:Int = 0
    val abc:Int = arrayint.size
    while( x < abc)
    {
        arrayint[x] = readLine()!!.toInt()
        x++
    }

    for(index in 0..4)
    {
        println(arrayint[index])
    }
}

答案 3 :(得分:0)

以下代码正在使用循环在数组中输入

import java.util.*
fun main(args: Array<String>) {

    var num = arrayOfNulls<Int>(5)
    var read= Scanner(System.`in`)
    println("Enter array values")
    for(i in 0..4)
    {
        num[i] = read.nextInt()
    }
    println("The array is")

    for(x in num){
        println(x)}
    }

答案 4 :(得分:0)

在预定义大小的数组中获取输入数据的 n 个数据元素的一种简写如下。 这里用户将输入一个整数
n = 元素数,然后是数组元素


import java.util.*

fun main(){
    val read = Scanner(System.`in`)
    
    val n = read.nextInt()

    var arr = Array(n) {i-> read.nextInt()} // taking input

    arr.forEach{
        println(it) // this loop prints the array
    }   
   
}