Kotlin. Циклы for, while, do-while, forEach, repeat()
Статья проплачена кошками — всемирно известными производителями котят.
Если статья вам понравилась, то можете поддержать проект.
- for
- Вложенные циклы for
- forEach
- repeat()
- while
- do-while
for
Цикл for в Kotlin имеет другой синтаксис. В Java нам нужно инициализировать переменную перед началом цикла, затем указать условие и затем изменять переменную.
for(int i = 0; i
Это классический вариант, который применяется и в других языках. Но он довольно неудобный и не понятен для новичков. Например, часто путаются в использовании <= и <.
В Kotlin упростили цикл. Для работы с циклом нужен итератор — массив, Map, интервал чисел и т.д.
Интервалы
Стандартный вариант, когда нужно пробежаться по заданному числу элементов, описывается следующим образом. Если для цикла используется одна команда, можно обойтись без фигурных скобок, но проще всегда использовать блок.
for(i in 1..5) println(i) // Лучше со скобками for(i in 1..5){ println(i) }
Оператор in и его брат !in проверяют вхождение или отсутствие вхождения в диапазон.
В выражении 1..5 мы указываем диапазон от 1 до 5 (пять входит в диапазон). Переменная последовательно примет значение
1 2 3 4 5
Диапазон можно заменить переменной.
val range = 1..5 for(i in range){ println("Элемент $i") }
Списки и множества
fun main() { val list = listOf("C", "A", "T") for (letter in list) { print(letter) } // Можно явно указать тип for (str: String in setOf("C", "A", "T")) { print(str) } }
Map
val capitals = mapOf( "USA" to "Washington DC", "England" to "London", "France" to "Paris" ) for ((country, capital) in capitals) { println("The capital of $country is $capital") }
Массивы
Можно указать массив.
val cats = arrayListOf<String>() cats.add("Мурзик") cats.add("Васька") cats.add("Барсик") for(cat in cats){ println("Кот $cat") } // Результат Кот Мурзик Кот Васька Кот Барсик
Этот же пример можно переписать, используя индекс:
for (index in cats.indices){ println("Кот ${cats[index]}") }
Проверим, является ли символ не цифрой.
fun isNotDigit(c: Char) = c !in '0'..'9' println(isNotDigit('3')) // false, это всё-таки цифра
С помощью index, element и
val cats = arrayListOf("Barsik", "Murzik", "Vaska") for( (index, element) in cats.withIndex()){ println("$index: $element") }
Получим.
0: Мурзик 1: Васька 2: Барсик
А как быть с вариантами, когда нужно счётчик не увеличивать на единицу, а уменьшать на 2? Используем ключевые слова downTo и step.
for(i in 10 downTo 1 step 2){ print("$i ") } // выводит: 10 8 6 4 2
Без указания шага значения будут уменьшаться на единицу.
for(i in 10 downTo 1){ print("$i ") } // 10 9 8 7 6 5 4 3 2 1 for (letter in 'Z' downTo 'A') print(letter) // ZYXWVUTSRQPONMLKJIHGFEDCBA
Очень часто в циклах встречается выражение size-1, чтобы не выйти за пределы массива. Можно заменить на until.
for(i in 0..cats.size - 1){ println(cats[i]) } for(i in 0 until cats.size){ println(cats[i]) }
Хотим выйти из цикла при достижении какого-то значения.
for (i in 1..5) { println(i) // прекращаем перебор, когда достигнем значения 3 if (i == 3) break } // Получим 1 2 3
Ключевое слово continue позволяет продолжить перебор, при этом можно что-то сделать во время перебора, например, мяукнуть. Число 5 при этом не выводится.
println("For loop 1 to 10 continue if number is 5") for (i in 1..10) { if (i == 5) { println("Meow") continue } println(i) } // Результат For loop 1 to 10 continue if number is 5 1 2 3 4 Meow 6 7 8 9 10
Вложенные циклы for
Часто используют два цикла for. Простейший вариант.
// первый цикл for(x in 1..3){ // второй вложенный цикл for(y in 1..3){ print("$x $y \n") } } // результат 1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 3 3
Если мы хотим досрочно прервать на каком-то этапе цикл, то можем добавить аннотацию outerLoop@ к первому циклу и внутри второго цикла вызвать [email protected]. Как только значения станут равными (2 2), цикл завершится досрочно.
// первый цикл outerLoop@ for (x in 1. .3) { // второй вложенный цикл for (y in 1..3) { print("$x $y \n") if (x == 2 && y == 2) brea[email protected] } } // результат 1 1 1 2 1 3 2 1 2 2
forEach
Пройтись по всем элементам коллекции.
val daysOfWeek = listOf("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday") daysOfWeek.forEach{ println(it) }
repeat()
Встроенная функция для повторения команд заданное число раз.
repeat(3){ println("Васька! Иди жрать!") }
while
Цикл while работает стандартным способом — пока условие остаётся истинным, выполняются команды в блоке цикла. Если код после условия цикла состоит из одной строчки, то фигурные скобки можно опустить.
var i = 1 while (i
Обратите внимание, что внутри цикла мы получим числа от 0 до 8, но если проверить, чему равно значение переменной после цикла, то увидим, что оно больше.
Прервать цикл можно через break.
var i = 1 while (i
do-while
Выполняем какую-то работу, пока выполняется какое-то условие — выводим число, которое увеличивается на единицу, пока число меньше 10.
var i = 1 do { println(i) i++ } while (i
Можно прервать цикл через break. Когда число станет равным 5, цикл прекратится.
var i = 1 do { println(i) if (i == 5) break i++ } while (i
Дополнительные материалы
for для строки
Реклама
Как заменить цикл for на while и repeat? Приведите пример. Язык программирования — Pascal.
Приглашаем на работу модератором форума за 15000+ в месяц!.
- Автор темы kok24031987
- Дата начала
kok24031987
kok24031987
- #1
Войдите или зарегистрируйтесь для ответа.
Вопрос С какого языка программирования лучше начинать изучения программирования для новичка. си или pascal?
- antialina9369
- Компьютерные вопросы
- Ответы
- 5
- Просмотры
- 150
hid
Вопрос Написать программу с циклом for
- Тоха
- Компьютерные вопросы
- Ответы
- 4
- Просмотры
- 150
3rewqrq32
Вопрос Посоветуйте язык программирования
- Stepan
- Компьютерные вопросы
- Ответы
- 5
- Просмотры
- 203
TheWindik
Вопрос Есть ли платные языки программирования?
- pvk DOK
- Компьютерные вопросы
- Ответы
- 5
- Просмотры
- 428
1111
Вопрос Можно ли так быстро изучить язык программирования питон? Как думаете реально?
- иерусалим
- Компьютерные вопросы
- Ответы
- 4
- Просмотры
- 166
DiMkA
Поделиться:Vkontakte Odnoklassniki Mail. ru Liveinternet Livejournal Facebook Twitter Reddit Pinterest Tumblr WhatsApp Telegram Viber Skype Line Gmail yahoomail Электронная почта Поделиться Ссылка
Сверху Снизу
WHILE Синонимы: 25 синонимов и антонимов WHILE
- Игры
- Рекомендуемые
- Поп-культура
- Советы по написанию
- 900 11
- Все игры
- Ежедневный кроссворд
- Словесная головоломка
- Поиск слов
- Избранное
- Все избранное
- Слово дня
- Синоним дня
- Слово года
- Новые слова
- Языковые истории
- Поп-культура
- Вся поп-культура
- Сленг
- Эмодзи
- Мемы
- Сокращения 9001 1 Пол и сексуальность
- Все советы по письму
- Тренер по грамматике ТМ
- Центр письма
- Основы грамматики
- Обычно путают
- тезаурус
- while
Как использовать в предложении
Гибрид Панда-Патрис играет в настольные игры с пятью девочками, читая рэп «Принеси мне брокколи/ , а я играю в Монополию».
Самые оскорбительные тексты песен и WTF-моменты из «Китайской еды» | Культурная команда | 15 октября 2013 г. | ЕЖЕДНЕВНЫЙ ЗВЕРЬ
Я искренне верю, что правительство должно по возможности сократить использование СМС- во время вождения —.
Даже хорошие законы иногда не работают | Меган МакАрдл | 31 октября 2012 г. | ЕЖЕДНЕВНЫЙ ЗВЕРЬ
Поначалу кредит у онлайн-кредитора был раз в жизни, в то время как привычка, возникшая в начале 2009 года.
Опасности онлайн-займов | Гэри Ривлин | 12 октября 2011 г. | ЕЖЕДНЕВНЫЙ ЗВЕРЬ
С более обильным материалом, доступным сейчас, такая оценка стоила бы а .
Краткий обзор американских летучих мышей рода Pipistrellus | Уолтер В. Далквест
Молодая пара начинает с улыбки голубого неба с молочными крапинками — , а облаков просто для усиления эффекта.
Мелкие неприятности супружеской жизни, полное | Оноре де Бальзак
Она казалась одной из самых достойных и девушек, которых я когда-либо встречал.
Люди Огня | Рэй Каммингс
Почему сейчас в кампусе действительно стоит- , в то время как девушек бредят ею.
Марджори Дин Колледж первокурсник | Полин Лестер
«Это как если бы носитель побежал за отцом- в то время как , а затем перепрыгнул через реку», — заметил Дик.
Работы Роберта Луи Стивенсона — Swanston Edition Vol. 8 (из 25) | Роберт Льюис Стивенсон
Синоним дня
Выберите синоним для общественного внимания
- внимание
- испытание
- столпотворение
- Связанные слова
Замените свои водительские права, находясь вне дома штата
Перейти к основному содержанию
Для полной функциональности наших онлайн-сервисов (таких как обновление вкладок, изменение адреса, продление вашей профессиональной лицензии и т. д.), поиска по сайту и Google Translate необходимо включить JavaScript. Посетите www.enable-javascript.com для инструкции по включению JavaScript в вашем веб-браузере.
ОБНОВЛЕНИЕ
Скоро появится новый dol.wa.gov — вот что нужно знать!
Если информация на этом переведенном веб-сайте неясна, свяжитесь с нами по телефону 360.902.3900 для получения помощи на выбранном вами языке.
Что нужно знать
Вы не можете изменить имя в своей лицензии по почте. Закон штата Вашингтон требует, чтобы водители, желающие изменить имя в своих правах, подали заявление на получение нового в отделе выдачи водительских удостоверений. Вы по-прежнему можете запросить замену лицензии по почте, и она будет отображать имя, которое в настоящее время указано в вашей лицензии.
Если ваше водительское удостоверение утеряно или украдено, когда вы находитесь за пределами штата Вашингтон:
- Вы можете заменить его по почте , если:
- Ваша лицензия находится в хорошем состоянии (не приостановлена, не отозвана, не передана или не аннулирована).
- Вы не вернетесь в Вашингтон в течение 30 дней.
- Вы не можете заменить его по почте , если:
- У вас есть расширенные водительские права (EDL).
- У вас есть коммерческие водительские права (CDL).
- Ваша лицензия приостановлена, отозвана, передана или аннулирована.
- В вашем файле нет действительного номера социального страхования.
Ваша заменяющая лицензия:
- Срок действия истекает в тот же день, что и ваша потерянная или украденная лицензия.
- Включает одобрение вашего мотоцикла, если применимо.
- Будет помечен как недействительный для идентификации.
- Не будет вашей фотографии или подписи.
Вы можете восстановить фотографию и подпись, посетив отдел выдачи водительских удостоверений.
Как заменить лицензию по почте
- Отправьте нам все следующее:
- Заполненная форма запроса на продление/замену водительского удостоверения за пределами штата.