🎯 Kotlin

Ввод и вывод данных в Kotlin 1.9: подробное руководство

Введение: Зачем нужен ввод и вывод данных?

Представь, что ты создаешь программу-калькулятор. Чтобы она посчитала что-то, ей нужно знать числа. Или представь игру: чтобы поприветствовать игрока, программа должна узнать его имя. Именно для этого и нужны ввод (программа получает информацию от пользователя) и вывод (программа показывает результат на экране).

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

Основной синтаксис

Вывод: команда println()

Чтобы показать текст или число на экране, мы используем команду println(). Она выводит информацию и автоматически переводит курсор на новую строку (как нажатие Enter).

fun main() {
    println("Привет, мир!")
    println(42)
    println("Мне " + 10 + " лет")
}

Результат в консоли:

Привет, мир!
42
Мне 10 лет

Ввод: команда readln()

Чтобы получить данные от пользователя, мы используем readln(). Эта команда ждет, пока пользователь что-то напечатает и нажмет Enter. readln() всегда возвращает строку (текст).

fun main() {
    print("Введите ваше имя: ") // print() не переносит строку
    val имя = readln()
    println("Привет, " + имя + "!")
}

Пример работы:

Введите ваше имя: Аня
Привет, Аня!

Преобразование в числа

Если мы хотим получить от пользователя число (например, возраст), нам нужно преобразовать строку из readln() в число. Для этого есть специальные команды:

  • toInt() — преобразует строку в целое число (например, 5, 2024)
  • toDouble() — преобразует строку в дробное число (например, 3.14, 2.5)
fun main() {
    print("Сколько тебе лет? ")
    val возраст = readln().toInt()
    println("Через год тебе будет " + (возраст + 1) + " лет!")
}

Пример работы:

Сколько тебе лет? 12
Через год тебе будет 13 лет!

Разбор типичных задач

Задача 1: Площадь прямоугольника

Нужно запросить длину и ширину, а затем вычислить площадь (длина × ширина).

fun main() {
    print("Введите длину: ")
    val длина = readln().toInt()
    print("Введите ширину: ")
    val ширина = readln().toInt()
    val площадь = длина * ширина
    println("Площадь прямоугольника равна " + площадь)
}

Пример работы:

Введите длину: 5
Введите ширину: 3
Площадь прямоугольника равна 15

Задача 2: Определение возраста

Нужно узнать год рождения и текущий год, вычислить возраст.

fun main() {
    print("Введите год рождения: ")
    val годРождения = readln().toInt()
    print("Введите текущий год: ")
    val текущийГод = readln().toInt()
    val возраст = текущийГод - годРождения
    println("Ваш возраст: " + возраст + " лет")
}

Пример работы:

Введите год рождения: 2012
Введите текущий год: 2024
Ваш возраст: 12 лет

Задача 3: Месячные расходы

Пользователь вводит расходы за каждый день недели, программа суммирует их.

fun main() {
    print("Расходы за понедельник: ")
    val пн = readln().toInt()
    print("Расходы за вторник: ")
    val вт = readln().toInt()
    print("Расходы за среду: ")
    val ср = readln().toInt()
    print("Расходы за четверг: ")
    val чт = readln().toInt()
    print("Расходы за пятницу: ")
    val пт = readln().toInt()
    print("Расходы за субботу: ")
    val сб = readln().toInt()
    print("Расходы за воскресенье: ")
    val вс = readln().toInt()

    val итого = пн + вт + ср + чт + пт + сб + вс
    println("Общая сумма расходов за неделю: " + итого)
}

Пример работы:

Расходы за понедельник: 100
Расходы за вторник: 200
...
Общая сумма расходов за неделю: 1050

Частые ошибки новичков

  • Забыли преобразовать строку в число. Если написать readln() и попробовать сложить с числом, Kotlin выдаст ошибку. Всегда используйте .toInt() или .toDouble() для чисел.
  • Путают print() и println(). print() не переводит строку после вывода. Это удобно для подсказок (например, "Введите число: "). println() переводит строку.
  • Используют неверный тип данных. Если нужно дробное число (например, 2.5 метра), используйте toDouble(), а не toInt().
  • Забывают про пробелы в выводе. Если написать println("Возраст" + возраст), то на экране будет "Возраст12". Лучше добавить пробел: println("Возраст " + возраст).

Итоговый пример: Уютное кафе

Давай напишем программу, которая принимает заказ в кафе: имя клиента, напиток и размер порции.

fun main() {
    // Запрашиваем имя
    print("Введите ваше имя: ")
    val имя = readln()

    // Запрашиваем напиток
    print("Выберите напиток (кофе, чай, какао): ")
    val напиток = readln()

    // Запрашиваем размер порции
    print("Выберите размер порции (маленькая, средняя, большая): ")
    val размер = readln()

    // Выводим итоговый заказ
    println("--- ЧЕК ЗАКАЗА ---")
    println("Клиент: " + имя)
    println("Напиток: " + напиток)
    println("Размер: " + размер)
    println("Спасибо за заказ, " + имя + "! Приятного аппетита!")
}

Пример работы программы:

Введите ваше имя: Максим
Выберите напиток (кофе, чай, какао): какао
Выберите размер порции (маленькая, средняя, большая): большая
--- ЧЕК ЗАКАЗА ---
Клиент: Максим
Напиток: какао
Размер: большая
Спасибо за заказ, Максим! Приятного аппетита!

Теперь ты знаешь, как программа может общаться с пользователем. Пробуй решать задачи — это весело!