5. Массивы, списки и циклы

В этом задании вы познакомитесь с массивами и списками, а также узнаете о различных способах создания циклов в языке программирования Kotlin.

Списки — это фундаментальный тип данных в Kotlin, и они похожи на списки в других языках.

  1. Объявите список listOfи распечатайте его. Этот список нельзя изменить.
val school = listOf("mackerel", "trout", "halibut")
println(school)
⇒ [mackerel, trout, halibut]
  1. Объявите список, который можно изменять с помощью метода mutableListOf`.`. Удалите элемент.
val myList = mutableListOf("tuna", "salmon", "shark")
myList.remove("shark")
⇒ res36: kotlin.Boolean = true

Метод remove()возвращает управление, trueкогда успешно удаляет переданный элемент.

Как и в других языках, в Kotlin есть массивы . В отличие от списков в Kotlin, которые имеют изменяемые и неизменяемые версии, в Kotlin нет изменяемой версии массива Array. После создания массива его размер фиксируется. Вы не можете добавлять или удалять элементы, за исключением копирования в новый массив.

Правила использования valи varдля массивов такие же, как и для списков.

  1. Объявите массив строк, используя ` arrayOf.`. Используйте java.util.Arrays.toString()утилиту `array` для его вывода.
val school = arrayOf("shark", "salmon", "minnow")
println(java.util.Arrays.toString(school))
⇒ [shark, salmon, minnow]
  1. Массив, объявленный с помощью `std::string`, arrayOfне имеет связанного с элементами типа, поэтому вы можете смешивать типы, что полезно. Объявите массив с разными типами.
val mix = arrayOf("fish", 2)
  1. Вы также можете объявлять массивы с одним типом для всех элементов. Объявите массив целых чисел, используя ` intArrayOf().`. Существуют соответствующие конструкторы или функции создания экземпляров для массивов других типов.
val numbers = intArrayOf(1,2,3)
  1. Объедините два массива с помощью +оператора.
val numbers = intArrayOf(1,2,3)
val numbers3 = intArrayOf(4,5,6)
val foo2 = numbers3 + numbers
println(foo2[5])
=> 3
  1. Попробуйте различные комбинации вложенных массивов и списков. Как и в других языках, вы можете вкладывать массивы и списки друг в друга. То есть, когда вы помещаете массив внутрь массива, вы получаете массив массивов, а не сглаженный массив содержимого обоих массивов. Элементы массива также могут быть списками, а элементы списков могут быть массивами.
val numbers = intArrayOf(1, 2, 3)
val oceans = listOf("Atlantic", "Pacific")
val oddList = listOf(numbers, oceans, "salmon")
println(oddList)
⇒ [[I@89178b4, [Atlantic, Pacific], salmon]

Первый элемент, numbers`<array>`, представляет собой массив Array. Если вы не используете утилиту `array` для его вывода, Kotlin выводит адрес вместо содержимого массива.

  1. Одна из замечательных особенностей Kotlin заключается в том, что вы можете инициализировать массивы с помощью кода, а не задавать им значения 0. Попробуйте этот пример:
val array = Array (5) { it * 2 }
println(java.util.Arrays.toString(array))
⇒ [0, 2, 4, 6, 8]

Код инициализации находится в фигурных скобках {}. В коде itобозначает индекс массива, начиная с 0.

Теперь, когда у вас есть списки и массивы, перебор элементов работает так, как вы и ожидали.

  1. Создайте массив. Используйте forцикл для перебора элементов массива и вывода их на экран.
val school = arrayOf("shark", "salmon", "minnow")
for (element in school) {
    print(element + " ")
}
⇒ shark salmon minnow
  1. В Kotlin можно одновременно перебирать элементы и их индексы. Попробуйте этот пример:
for ((index, element) in school.withIndex()) {
    println("Item at $index is $element\n")
}
⇒ Item at 0 is shark
Item at 1 is salmon
Item at 2 is minnow
  1. Попробуйте разные размеры шага и диапазоны. Вы можете указывать диапазоны чисел или символов в алфавитном порядке. И, как и в других языках, вам не обязательно делать шаг вперед на 1. Вы можете сделать шаг назад, используя downTo.
for (i in 1..5) print(i)
⇒ 12345

for (i in 5 downTo 1) print(i)
⇒ 54321

for (i in 3..6 step 2) print(i)
⇒ 35

for (i in 'd'..'g') print (i)
⇒ defg
  1. Попробуйте использовать циклы. Как и в других языках, в Kotlin есть whileциклы, do...whileциклы и ++операторы --. В Kotlin также есть repeatциклы.
var bubbles = 0
while (bubbles < 50) {
    bubbles++
}
println("$bubbles bubbles in the water\n")

do {
    bubbles--
} while (bubbles > 50)
println("$bubbles bubbles in the water\n")

repeat(2) {
     println("A fish is swimming")
}
⇒ 50 bubbles in the water
49 bubbles in the water
A fish is swimmingA fish is swimming

Last modified: Sunday, 5 April 2026, 12:16 PM