Последовательности

Последнее обновление: 24.05.2021

Последовательность представляет набор значений или диапазон. Для создания последовательности применяется оператор ..:

val range = 1..5	// последовательность [1, 2, 3, 4, 5]

Этот оператор принимает два значения - границы последовательности, и все элементы между этими значениями (включая их самих) составляют последовательность.

Последовательность необязательно должна представлять числовые данные. Например, это могут быть строки:

val range =  "a".."d"

Оператор .. позволяет создать последовательность по нарастающей, где каждый следующий элемент будет больше предыдущего. С помощью специальной функции downTo можно построить последовательность в обратном порядке:

val range1 =  1..5		// 1 2 3 4 5
val range2 =  5 downTo 1	// 5 4 3 2 1

Еще одна специальная функция step позволяет задать шаг, на который будут изменяться последующие элементы:

val range1 = 1..10 step 2       	// 1 3 5 7 9
val range2 = 10 downTo 1 step 3     // 10 7 4 1

Еще одна функция until позволяет не включать верхнюю границу в саму последовательность:

val range1 = 1 until 9          // 1 2 3 4 5 6 7 8
val range2 = 1 until 9 step 2   // 1 3 5 7

С помощью специальных операторов можно проверить наличие или отсутствие элементов в последовательности:

  • in: возвращает true, если объект имеется в последовательности

  • !in: возвращает true, если объект отсутствует в последовательности

fun main() {

    val range = 1..5

    var isInRange = 5 in range
    println(isInRange)      // true

    isInRange = 86 in range
    println(isInRange)      // false

    var isNotInRange = 6 !in range
    println(isNotInRange)   // true

    isNotInRange = 3 !in range
    println(isNotInRange)   // false
}

Перебор последовательности

С помощью цикла for можно перебирать последовательность:

val range1 = 5 downTo 1 
for(c in range1) print(c)   // 54321
println()

val range2 = 'a'..'d'
for(c in range2) print(c)   // abcd
println()

for(c in 1..9) print(c)     // 123456789
println()

for(c in 1 until 9) print(c)    // 12345678
println()

for(c in 1..9 step 2) print(c)  // 13579
Помощь сайту
WebMoney
  • P378451176208
  • Z280152397659
ЮMoney/Яндекс-Деньги
  • 410011174743222
PayPal
  • metanit22@mail.ru
Перевод на карту
  • Номер карты: 4048415020898850