Kotlin: Условные операторы и циклы

В этом уроке научимся управлять ходом программы: проверять условия и повторять действия с помощью циклов.

Условный оператор if‑else


Конструкция if‑else позволяет выполнять разные блоки кода в зависимости от условия.

Базовый синтаксис:
if (условие) {
    // код, если условие истинно
} else {
    // код, если условие ложно
}

Пример в "MainActivity.kt":
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val textView = findViewById<TextView>(R.id.textView)
    val age = 18

    if (age >= 18) {
        textView.text = "Вы совершеннолетний"
    } else {
        textView.text = "Вам меньше 18 лет"
    }
}

Важные нюансы:
  • Условие должно возвращать Boolean (true/false).
  • Ветку else можно опустить, если она не нужна.
  • В Kotlin if может возвращать значение (как выражение):
    val status = if (age >= 18) "Взрослый" else "Ребёнок"

Оператор when (аналог switch)


when — более удобная замена множественным if‑else для проверки нескольких вариантов.

Синтаксис:
when (переменная) {
    значение1 -> // код
    значение2 -> // код
    else -> // код по умолчанию
}

Пример:
val day = 3
val dayName = when (day) {
    1 -> "Понедельник"
    2 -> "Вторник"
    3 -> "Среда"
    4 -> "Четверг"
    5 -> "Пятница"
    6 -> "Суббота"
    7 -> "Воскресенье"
    else -> "Неверный день"
}
textView.text = dayName

Возможности when:

Проверка диапазонов:
when (age) {
    in 0..12 -> "Ребёнок"
    in 13..19 -> "Подросток"
    else -> "Взрослый"
}

Проверка типов:
when (x) {
    is String -> println("Это строка")
    is Int -> println("Это число")
}

Цикл for


Используется для перебора элементов коллекции или диапазона.

Перебор диапазона:
for (i in 1..5) {
    println("Число: $i")
}
// Выведет: 1, 2, 3, 4, 5

Перебор списка:
val fruits = listOf("Яблоко", "Банан", "Апельсин")
for (fruit in fruits) {
    println("Фрукт: $fruit")
}

С индексом:
for ((index, fruit) in fruits.withIndex()) {
    println("$index: $fruit")
}
// 0: Яблоко, 1: Банан, 2: Апельсин

Цикл while


Выполняет код, пока условие истинно.

Синтаксис:
while (условие) {
    // код
}

Пример:
var counter = 0
while (counter < 3) {
    println("Счётчик: $counter")
    counter++  // увеличиваем на 1
}
// Выведет: 0, 1, 2

Цикл do‑while (выполняется хотя бы раз):
do {
    println("Это выполнится хотя бы раз")
} while (false)  // условие ложно, но код запустится 1 раз

Управление циклами


  • break — прерывает цикл.
  • continue — пропускает текущую итерацию и переходит к следующей.

Пример с break:
for (i in 1..10) {
    if (i == 5) break
    println(i)  // выведет 1, 2, 3, 4
}

Пример с continue:
for (i in 1..5) {
    if (i == 3) continue
    println(i)  // выведет 1, 2, 4, 5 (пропустит 3)
}

Практическое задание


  1. Создайте переменную val score: Int = 85.
  2. С помощью if‑else выведите в TextView:
    • «Отлично!», если score >= 90;
    • «Хорошо», если score >= 75;
    • «Удовлетворительно», если score >= 60;
    • «Неудовлетворительно» в остальных случаях.

  3. Создайте список val numbers = listOf(1, 2, 3, 4, 5).
  4. С помощью цикла for выведите каждое число в лог (println).
  5. С помощью цикла while посчитайте сумму чисел от 1 до 10 и выведите результат в TextView.

Ожидаемый результат в TextView:
  • Для score = 85 → «Хорошо».
  • Сумма от 1 до 10 → 55.

Отладка и типичные ошибки


  • «Unreachable code» — проверьте условия if, возможно, ветка никогда не выполнится.
  • «IndexOutOfBoundsException» — убедитесь, что индекс в цикле не выходит за границы списка.
  • «Infinite loop» (бесконечный цикл) — проверьте условие while, добавьте счётчик для контроля.

Что дальше?


В следующем уроке разберём:
  • Функции и их параметры;
  • Лямбда‑выражения;
  • Обработку нажатий кнопок в Android.


Автор:  28.01.2026 07:12:27 pm