В предыдущих уроках вы узнали, как управлять порядком выполнения кода в Kotlin, используя if
выражения и цикл while. В следующих уроках мы продолжим изучения порядка выполнения и рассмотрим особенности цикла for.
Циклы могут показаться не очень интересными, но они очень распространены в программировании. Например, вы можете написать код для загрузки одного изображения из интернета. Цикл можно запускать по несколько раз, чтобы загрузить всю библиотеку фотографий. Или, если у вас есть игра с несколькими персонажами, управляемыми компьютером, вам может понадобиться цикл, чтобы пройти через каждого из них и убедиться, что он знает, что делать дальше.
Вы также узнаете о when
выражениях, которые особенно эффективны в Kotlin. Они позволяют проверить значение и решить, что делать на его основе. Они очень эффективны при сопоставлении аргументов.
Статьи из курса:
Задания для проверки
1. Каким будет значение суммы в следующем цикле for и сколько итераций произойдет?
1 2 3 4 5 6 7 8 | fun main() { var sum = 0 var iterations = 0 for(i in 0..5) { sum += i } } |
2. Сколько раз буква «a» будет добавлена в строку aLotOfAs
после выполнения цикла while из примера ниже? Подсказка: aLotOfAs.count
сообщает вам, сколько символов в строке aLotOfAs
.
1 2 3 4 5 6 7 8 | fun main() { var aLotOfAs = "" while (aLotOfAs.length < 10) { aLotOfAs += "a" } println(aLotOfAs) } |
3. Взгляните на следующее when
выражение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | fun main() { val (x, y, z) = Triple(1, 5, 0) // val (x, y, z) = Triple(2, 2, 2) // val (x, y, z) = Triple(3, 0, 1) // val (x, y, z) = Triple(3, 2, 5) // val (x, y, z) = Triple(0, 2, 4) when { x == y && y == z -> println("x = y = z") z == 0 -> println("На плоскости x / y") y == 0 -> println("На плоскости x / z") x == 0 -> println("На плоскости y / z") else -> println("Ничего особенного") } } |
Что выведет код, когда данные из константы coordinates
будет каждым из следующих значений?
1 2 3 4 5 | val (x, y, z) = Triple(1, 5, 0) val (x, y, z) = Triple(2, 2, 2) val (x, y, z) = Triple(3, 0, 1) val (x, y, z) = Triple(3, 2, 5) val (x, y, z) = Triple(0, 2, 4) |
4. Закрытый интервал никогда не может быть пустым. Почему?
5. Выведите числа в обратном порядке от 10 до 0. Не используйте метод downTo
;
6. Выведите 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0.
Ключевые особенности порядка выполнения в Kotlin
- Можно использовать интервалы для создания последовательности чисел, которые увеличиваются, переходя от одного значения к другому;
- Закрытые интервалы включают как начальные, так и конечные значения;
- Полуоткрытые интервалы включают начальное значение и значение перед конечным значением;
- Циклы for позволяют выполнять итерацию по интервалу;
- Оператор continue позволяет завершить текущую итерацию цикла и начать следующую итерацию;
- Маркированные операторы позволяют использовать
break
иcontinue
во внешнем цикле; - Вы можете использовать выражения
when
, чтобы решить, какой код запускать в зависимости от значения переменной или константы; - Сила
when
выражений заключается в использовании сопоставления с шаблоном для сравнения значений с использованием сложных правил проверки.
Что дальше?
Вы узнали об основных особенностях Kotlin для работы с данными — типы данных, переменные, булевы значения и циклы с интервалами. В следующих уроках вы узнаете об одном из ключевых способов сделать код более удобным для повторного использования и легким для чтения с помощью функций.