#kotlin
#котлин
Вопрос:
Я понятия не имею, в чем ошибка, мне трудно адаптироваться к этому языку, большое вам спасибо за любую помощь.
Ошибка:
Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Scanner.java:937)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at Packing.<init>(Packing.kt:100)
at PackingKt.main(Packing.kt:7)
at PackingKt.main(Packing.kt)
Мой код:
import java.io.InputStream
import java.util.Scanner
fun main() {
val input = Scanner(InputStream.nullInputStream())
val packing1 = Packing(input)
val packing2 = Packing(input)
val packing3 = Packing(input)
var total = 0
var min = 0
val combinations = ArrayList<String>()
for(a in 1..3){
for(b in 1..3){
for(c in 1..3){
//here is a piece of code
}
}
combinations.sort()
println("${combinations.get(0)} $min")
}
}
class Packing {
var brownBottles = 0
var greenBottles = 0
var clearBottles = 0
constructor (input : Scanner){
brownBottles = input.nextInt() //this is the line 100
greenBottles = input.nextInt()
clearBottles = input.nextInt()
}
}
Идея состоит в том, чтобы вводить значения с помощью консоли, которые инициализируют переменные моих объектов.
Комментарии:
1. почему вы переходите
InputStream.nullInputStream()
кScanner
? Может быть, вам нужноScanner(System.`in`)
?2. Я пытался с System.in но я получил ошибку, я попробую с этим
Ответ №1:
Я бы просто использовал
val input = Scanner(System.`in`)
Если вы введете 9 целых чисел в консоль, инициализация объектов упаковки должна сработать.
nullInputStream() для меня не имеет смысла. С этим невозможно читать с консоли.
Список комбинаций пуст, поэтому он выдает исключение, обращающееся к нему здесь
println("${combinations.get(0)} $min")