Циклы являются способом многократного выполнения кода в Kotlin. В этом уроке мы познакомимся с одним из типов циклов, а именно — циклом while
.
Содержание статьи
- Цикл while в Kotlin
- Цикл do-while в Kotlin
- Прерывание цикла с помощью break в Kotlin
- Задачи для проверки
Если вы уже изучали другие языки программирования, вам будут знакомы концепции и, возможно, даже синтаксис.
Цикл while в Kotlin
Цикл while
повторяет блок кода, пока выполняется условие. Цикл while в Kotlin создается следующим образом:
1 2 3 | while (<CONDITION>) { <LOOP CODE> } |
Цикл проверяет условие для каждой итерации. Если условие истинно (true), цикл выполняется и переходит к другой итерации.
Если условие ложно (false), цикл останавливается. Как и выражения if, циклы while создает свою собственную область видимости.
Простейший цикл while
имеет следующую форму:
1 2 3 | while (true) { } |
Это вечный цикл while в Kotlin, так как условие всегда истинно (true). Конечно, вам вряд ли потребуется писать такой цикл while, потому что в этом случае программа будет выполняться вечно! Бесконечный цикл не приведет к сбою программы, но из-за него может зависнуть компьютер.
Далее представлен более полезные пример цикла while в Котлин:
1 2 3 4 5 | var sum = 1 while (sum < 1000) { sum = sum + (sum + 1) } |
Данный код подсчитывает математическую последовательность до того момента, где значение больше 1000
.
Цикл выполняется следующим образом:
- Перед итерацией 1:
sum
= 1, условие цикла = true - После итерации 1:
sum
= 3, условие цикла = true - После итерации 2:
sum
= 7, условие цикла = true - После итерации 3:
sum
= 15, условие цикла = true - После итерации 4:
sum
= 31, условие цикла = true - После итерации 5:
sum
= 63, условие цикла = true - После итерации 6:
sum
= 127, условие цикла = true - После итерации 7:
sum
= 255, условие цикла = true - После итерации 8:
sum
= 511, условие цикла = true - После итерации 9:
sum
= 1023, условие цикла = false
После девятой итерации переменная sum
равна 1023
, следовательно, условие sum < 1000
становится ложным (false). В данной точке — цикл останавливается.
Цикл do-while в Kotlin
Одним из вариантов цикла while
является цикл do-while. Он отличается от цикла while
тем, что условие проверяется в конце цикла, а не в начале. Это означает, что хотя бы 1 раз тело цикла будет выполнено.
1 2 3 | do { <LOOP CODE> } while (<CONDITION>) |
Далее дан пример из прошлого раздела, только здесь используется цикл do-while
:
1 2 3 4 5 | sum = 1 do { sum = sum + (sum + 1) } while (sum < 1000) |
В данном примере вывод такой же, как и раньше. Однако, так бывает не всегда. Вы можете получить другой результат с другим условием. Рассмотрим следующий цикл while
:
1 2 3 4 5 | sum = 1 while (sum < 1) { sum = sum + (sum + 1) } |
Рассмотрим аналогичный цикл do-while
, который использует такое же условие:
1 2 3 4 5 | sum = 1 do { sum = sum + (sum + 1) } while (sum < 1) |
В случае обычного цикла while
условие sum < 1
является ложным с самого начала. Это означает, что тело цикла не будет выполнено! Значение sum
будет равна 1
, потому что цикл не будет выполнять никаких итераций. В случае цикла do-while
сумма sum
будет равна 3
, потому что цикл do-while ВСЕГДА выполнится хотя бы один раз, даже если изначально условие ложное.
Прерывание цикла с помощью break в Kotlin
Иногда требуется прервать цикл раньше времени. Для этого можно использовать оператор break
, который сразу прерывает цикл и продолжает выполнение кода после него.
К примеру, рассмотрим следующий код:
1 2 3 4 5 6 7 8 | sum = 1 while (true) { sum = sum + (sum + 1) if (sum >= 1000) { break } } |
Здесь условие цикла истинно (true), поэтому цикл будет повторятся бесконечно. Однако оператор break указывает на то, что цикл while
завершится, когда сумма будет больше или равна 1000
.
Мы узнали, как написать один и тот же цикл по-разному, и тем самым продемонстрировали, что в программировании бывает много способов добиться одного и того же результата разными способами.
Вам следует выбирать наиболее удобные в зависимости от ситуации. Это подход, который вы усвоите со временем и практикой.
Задачи для проверки
1. Создайте переменную counter
, значением которой будет 0
. Создайте цикл while с условием counter < 10
, который выводит counter равен X
(где Х
заменяется значением counter
) и затем увеличивает counter
на 1
;
2. Создайте переменную counter
со значением 0
. Создайте другую переменную под названием roll
, значением которой будет 0
. Создайте цикл do-while
.
Внутри цикла укажите, что переменная roll
равна Random().nextInt(6)
, то есть выбор случайного числа между 0
и 5
. Затем увеличьте counter
на 1
.
Под конец выведите После X бросков, roll равен Y
, где Х
является значением counter
, а Y
— значением roll
. Укажите условие цикла, при котором цикл будет заканчиваться при выпаде первого 0
.
prix pour kamagra
kamagra livraison de livraison sans ordonnance le lendemain
online order enclomiphene australia generic online
buy enclomiphene uk sales
get androxal generic online uk
order androxal canada on sale
purchase flexeril cyclobenzaprine generic lowest price
buy cheap flexeril cyclobenzaprine uk order
discount dutasteride generic medications
ordering dutasteride price london
buy cheap gabapentin no prescription
cheapest buy gabapentin cheap uk buy purchase
cheapest buy fildena canada drugs
online order fildena usa price
ordering itraconazole no rx needed
itraconazole cheap
buying staxyn australia price
buy cheap staxyn cheap where
how to buy avodart price netherlands
buying avodart no prescription usa
get xifaxan australia suppliers
order prescription free xifaxan
get rifaximin cost on prescription
order rifaximin price uk
kamagra žádné rx krmení ex
kamagra tablety kanadské zdravotní péče