В предыдущих уроках вы узнали, как управлять порядком выполнения кода в 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 для работы с данными — типы данных, переменные, булевы значения и циклы с интервалами. В следующих уроках вы узнаете об одном из ключевых способов сделать код более удобным для повторного использования и легким для чтения с помощью функций.
cheap androxal generic brand
purchase androxal cheap melbourne
online order enclomiphene cheap canada pharmacy
order enclomiphene purchase singapore
cheapest buy rifaximin cheap where
online order rifaximin generic ingredients
comprar xifaxan en arg
how to order xifaxan uk delivery
ordering staxyn generic online uk
cheapest buy staxyn cheap canadian pharmacy
cheapest buy avodart price in us
buy avodart canadian online pharmacy
how to buy dutasteride generic version
dutasteride England over the counter
cheap flexeril cyclobenzaprine uk sales
buying flexeril cyclobenzaprine australia buy online
discount gabapentin how to purchase viagra
cheapest buy gabapentin price by pharmacy
kamagra prescription de s en ligne
kamagra sans ordonnance
online order fildena generic canadian
how to buy fildena american express canada
online order itraconazole canadian sales
itraconazole prescription online singapore
kamagra bez rx
kamagra kanada