Ввод и вывод данных в 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("Спасибо за заказ, " + имя + "! Приятного аппетита!")
}
Пример работы программы:
Введите ваше имя: Максим
Выберите напиток (кофе, чай, какао): какао
Выберите размер порции (маленькая, средняя, большая): большая
--- ЧЕК ЗАКАЗА ---
Клиент: Максим
Напиток: какао
Размер: большая
Спасибо за заказ, Максим! Приятного аппетита!
Теперь ты знаешь, как программа может общаться с пользователем. Пробуй решать задачи — это весело!