Kotlin в IntelliJ IDEA Kotlin змінні Kotlin типи даних Kotlin операції з числами Kotlin умовні вирази Kotlin умовні конструкції Kotlin цикли Kotlin послідовності Kotlin масиви Kotlin функціональне програмування Kotlin змінна кількість параметрів. Vararg Kotlin повернення результату. оператор return Kotlin однорядкові і локальні функції Kotlin перевантаження функцій Kotlin Лямбда-вирази Kotlin функції вищого порядку Kotlin Анонімні функції Kotlin ООП Класи і об'єкти Kotlin ООП властивості Kotlin ООП конструктор Kotlin ООП функції в класах Kotlin ООП Пакети та імпорт Kotlin ООП модифікатори видимості Kotlin ООП вкладені класи Kotlin ООП інтерфейси Kotlin ООП спадкування Kotlin ООП Перевизначення методів і властивостей Kotlin ООП Абстрактні класи та методи Kotlin ООП Data-класи Kotlin ООП перерахування enums Kotlin ООП Null і nullable-типи Kotlin ООП Обробка винятків Kotlin ООП перетворення типів Kotlin ООП Інфіксна функція Kotlin ООП функції розширення Kotlin ООП Узагальнені класи і функції Kotlin ООП обмеження узагальнень Kotlin ООП Варіантність, коваріантність і контраваріантність Kotlin Колекції. Змінювані і незмінні колекції Kotlin Колекції. LIST список Kotlin Колекції. Set Kotlin Колекції. Map

Kotlin цикли


цикли

Цикли представляють вид керуючих конструкцій, які дозволяють в залежності від певних умов виконувати деяку дію безліч разів.


For

Цикл for пробігається по всіх елементах колекції. В цьому плані цикл for в Kotlin еквівалентний циклу for-each в ряді інших мов програмування. Його формальна форма виглядає наступним чином:

for(переменная in поледовательность){
    выполняемые инструкции
}

Наприклад, виведемо всі квадрати чисел від 1 до 9, використовуючи цикл for:

for(n in 1..9){
    print("${n * n} \t")
}

В даному випадку перебирається послідовність чисел від 1 до 9. При кожному проході циклу (ітерації циклу) з цієї послідовності буде вилучатись елемент і поміщатися в змінну n. І через змінну n можна маніпулювати значенням елемента. Тобто в даному випадку ми отримаємо наступний консольний висновок:

for(i in 1..9){
    for(j in 1..9){
        print("${i * j} \t")
    }
    println()
}

У підсумку на консоль буде виведена наступна таблиця множення:

var i = 10
while(i > 0){
    println(i*i)
    i--;
}

Тут поки змінна i більше 0, буде виконуватися цикл, в якому на консоль буде виводитися квадрат значення i.

В даному випадку спочатку перевіряється умова (i> 0) і якщо воно істинне (тобто повертає true), то виконується цикл. І цілком може бути ситуація, коли до початку виконання циклу умова не буде виконуватися. Наприклад, змінна i спочатку менше 0, тоді цикл взагалі не буде виконуватися.

Але є й інша форма циклу while - do..while:

var i = -1
do{
    println(i*i)
    i--;
}
while(i > 0)

В даному випадку спочатку виконується блок коду після ключового слова do , а потім оцінюється умова після while. Якщо умова істинно, то повторюється виконання блоку після do. Тобто незважаючи на те, що в даному випадку змінна i менше 0 і вона не відповідає умові, проте блок do виконається хоча б один раз.


Оператори continue і break

Іноді при використанні циклу виникає необхідність при деяких умовах не чекати виконання всіх інструкцій в циклі, перейти до нової ітерації. Для цього можна використовувати оператор continue :

for(n in 1..8){
    if(n == 5) continue;
    println(n * n)
}

В даному випадку коли n дорівнюватиме 5, спрацює оператор continue. І подальша інструкція, яка виводить на консоль квадрат числа, не виконуватиметься. Цикл перейде до обробки наступного елемента в масиві

Буває, що при деяких умовах нам зовсім треба вийти з циклу, припинити його виконання. У цьому випадку застосовується оператор break :

for(n in 1..5){
    if(n == 5) break;
    println(n * n)
}

В даному випадку коли n виявиться дорівнює 5, то за допомогою оператора break буде виконаний вихід з циклу. Цикл повністю завершиться.


Наш партнер:
beta test mp3 playlist downloader