Котлин: я хочу обновить массив букв, пока массив находится вне поля «если». Как я могу сохранить обновление, когда обновление массива оставляет «if»?

#arrays #kotlin #if-statement #arraylist

#массивы #котлин #if-оператор #список массивов

Вопрос:

Проблема в том, что массив очистится после выхода из функции «if», и я хочу сохранить его сохраненным даже в цикле while.

 while (letters != correct) {

var missedl = arrayListOf("")

        if (word.contains(input)) {

            println("Missed letters: $missedl")

        } else {

            missedl.add(input)
            println("Missed letters: $missedl")

        }
}
 

Это тоже не работает:

 while (letters != correct) {

var missedl = arrayListOf("")
missedl.add(p)

      var p = if (word.contains(input)) {

            println("Missed letters: $missedl")

        } else {
            input
            println("Missed letters: $missedl")

        }
}
 

Комментарии:

1. извините, но этот код не имеет никакого смысла. Вы упоминаете while цикл, которого не существует в коде. Вы говорите, что массив очищается после выхода из if , но вы не получаете доступ или ничего не изменяете в массиве во второй части, в том же месте, в коде есть p = , что это должно быть?

2. Ты прав, мне очень жаль. Я отредактирую его.

3. хорошо, теперь это имеет смысл, вы объявляете свой массив внутри цикла. Это означает, что независимо от того, что вы делаете с ним во время одной итерации, он просто создаст новый пустой на следующей итерации. Выведите arrray из цикла.

4. Да, это работает прямо сейчас. Пришлось ввести .distinct(), потому что буква показывалась дважды. Спасибо большое.