Условный оператор if‑else
Конструкция
if‑else позволяет выполнять разные блоки кода в зависимости от условия.Базовый синтаксис:
ВыделитьKotlin
if (условие) {
// код, если условие истинно
} else {
// код, если условие ложно
}Пример в "MainActivity.kt":
ВыделитьKotlin
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может возвращать значение (как выражение):ВыделитьKotlinval status = if (age >= 18) "Взрослый" else "Ребёнок"
Оператор when (аналог switch)
when — более удобная замена множественным if‑else для проверки нескольких вариантов.Синтаксис:
ВыделитьKotlin
when (переменная) {
значение1 -> // код
значение2 -> // код
else -> // код по умолчанию
}Пример:
ВыделитьKotlin
val day = 3
val dayName = when (day) {
1 -> "Понедельник"
2 -> "Вторник"
3 -> "Среда"
4 -> "Четверг"
5 -> "Пятница"
6 -> "Суббота"
7 -> "Воскресенье"
else -> "Неверный день"
}
textView.text = dayNameВозможности when:
Проверка диапазонов:
ВыделитьKotlin
when (age) {
in 0..12 -> "Ребёнок"
in 13..19 -> "Подросток"
else -> "Взрослый"
}Проверка типов:
ВыделитьKotlin
when (x) {
is String -> println("Это строка")
is Int -> println("Это число")
}Цикл for
Используется для перебора элементов коллекции или диапазона.
Перебор диапазона:
ВыделитьKotlin
for (i in 1..5) {
println("Число: $i")
}
// Выведет: 1, 2, 3, 4, 5Перебор списка:
ВыделитьKotlin
val fruits = listOf("Яблоко", "Банан", "Апельсин")
for (fruit in fruits) {
println("Фрукт: $fruit")
}С индексом:
ВыделитьKotlin
for ((index, fruit) in fruits.withIndex()) {
println("$index: $fruit")
}
// 0: Яблоко, 1: Банан, 2: АпельсинЦикл while
Выполняет код, пока условие истинно.
Синтаксис:
ВыделитьKotlin
while (условие) {
// код
}Пример:
ВыделитьKotlin
var counter = 0
while (counter < 3) {
println("Счётчик: $counter")
counter++ // увеличиваем на 1
}
// Выведет: 0, 1, 2Цикл do‑while (выполняется хотя бы раз):
ВыделитьKotlin
do {
println("Это выполнится хотя бы раз")
} while (false) // условие ложно, но код запустится 1 разУправление циклами
break— прерывает цикл.continue— пропускает текущую итерацию и переходит к следующей.
Пример с break:
ВыделитьKotlin
for (i in 1..10) {
if (i == 5) break
println(i) // выведет 1, 2, 3, 4
}Пример с continue:
ВыделитьKotlin
for (i in 1..5) {
if (i == 3) continue
println(i) // выведет 1, 2, 4, 5 (пропустит 3)
}Практическое задание
- Создайте переменную
val score: Int = 85. - С помощью
if‑elseвыведите вTextView:- «Отлично!», если
score >= 90; - «Хорошо», если
score >= 75; - «Удовлетворительно», если
score >= 60; - «Неудовлетворительно» в остальных случаях.
- «Отлично!», если
- Создайте список
val numbers = listOf(1, 2, 3, 4, 5). - С помощью цикла
forвыведите каждое число в лог (println). - С помощью цикла
whileпосчитайте сумму чисел от 1 до 10 и выведите результат вTextView.
Ожидаемый результат в TextView:
- Для
score = 85→ «Хорошо». - Сумма от 1 до 10 →
55.
Отладка и типичные ошибки
- «Unreachable code» — проверьте условия
if, возможно, ветка никогда не выполнится. - «IndexOutOfBoundsException» — убедитесь, что индекс в цикле не выходит за границы списка.
- «Infinite loop» (бесконечный цикл) — проверьте условие
while, добавьте счётчик для контроля.
Что дальше?
В следующем уроке разберём:
- Функции и их параметры;
- Лямбда‑выражения;
- Обработку нажатий кнопок в Android.