Создайте свое первое приложение для Android на Kotlin
Программируем на языке "Котлин"
Открытка "С днем рождения"
Распечатайте баннер на день рождения с рамкой
fun main() {
println("=======================")
println("Happy Birthday, Jhansi!")
println("=======================")
}
=======================
Happy Birthday, Jhansi!
=======================
Код, который вы только что вставили и запустили, представляет собой вызываемую функцию fun с именем main(), содержащую аргумент в {} три оператора печати println
Упрощаем код это называется "рефакторинг" оператор печати заменяем на функцию printBorder()
fun main() {
printBorder()
println("Happy Birthday, Jhansi!")
printBorder()
}
fun printBorder() {
println("=======================")
}
Теперь упрощаем printBorder() "Выведите эту строку из 23 символов" на «Напечатайте этот 1 символ 23 раза». В коде вы делаете это с помощью repeat() оператор цикла
Вместо использования println() используйте print(), чтобы не переходить на новую строку после печати каждого символа =, после того, как вы закончите печатать линию границы, добавьте println()инструкцию для печати новой строки.
fun main() {
printBorder()
println("Happy Birthday, Jhansi!")
printBorder()
}
fun printBorder() {
repeat(23) {
print("=")
}
println()
}
На этот раз вы смогли создать границу, указав символ «=» только один раз!
=======================
Happy Birthday, Jhansi!
=======================
Используйте аргументы, чтобы изменить границу
----------------------------------%%%%%%%%%%%%%%%%------------------------------------
Отличительной чертой функций является то, что вы можете вводить в них данные, используя аргументы.
Создайте шаблон границы
val border = "%" Теперь передайте эту border переменную в оба вызова printBorder()функции в качестве аргумента. Вы делаете это, помещая border в круглые скобки (), как если бы вы вводили текст для println()печати.
fun main() {
val border = "%"
printBorder(border)
println("Happy Birthday, Jhansi!")
printBorder(border)}
Функция printBorder()возьмет это значение border в качестве входных данных и выяснит, как распечатать всю границу.
В нижней части кода меняем:
printBorder() функцию добавляем аргумент (border: String)
чтобы функция могла печатать шаблон границы (val border = "%")
printBorder()теперь принимает границу String в качестве входных данных. И код в main() вызовах printBorder(border) с border аргументом.
//A String - строковый тип («нить, вереница») двоеточие перед ним обязательно: Указание того, что этот тип аргумента должен быть String помогает системе обеспечить, чтобы он был текстом "%", а не, например, числом.
fun printBorder(border: String)
Далее меняем:
printBorder()функцию, чтобы использовать переданный border вместо печати "=" на print(border)
print(border) // Это работает точно так же, как если бы border это была переменная, которую вы определили внутри функции! Тут не понял. Скорее всего это ссылка на val border = "%"
repeat(23) - оператор цикла его оставляем как есть
Готовый код:
fun main() {
val border = "%"
printBorder(border)
println("Happy Birthday, Jhansi!")
printBorder(border)
}
fun printBorder(border: String) {
repeat(23) {
print(border)
}
println()
}
%%%%%%%%%%%%%%%%%%%%%%%
Happy Birthday, Jhansi!
%%%%%%%%%%%%%%%%%%%%%%%
***********************
Happy Birthday, Jhansi!
***********************
:::::::::::::::::::::::
Happy Birthday, Jhansi!
:::::::::::::::::::::::
Измените функцию, чтобы она имела два аргумента
Вы можете определить более красивую границу на основе двух вещей:
Шаблон для повторения (который вы уже сделали)
Количество раз, которое вы хотите повторить шаблон
Вы можете создать переменные для каждого шаблона и количества повторений, а затем передать обе части информации в printBorder()функцию.
В main()измените границу, чтобы она была val border = "`-._,-'"узором.
Создайте новую переменную под определением border, с именем timesToRepeat количества повторений. Установите его значение на 4.
val timesToRepeat = 4
В printBorder() добавьте оба аргумента разделив запятой
printBorder(border, timesToRepeat)
Теперь main()функция должна выглядеть так:
fun main() {
val border = "`-._,-'"
val timesToRepeat = 4
printBorder(border, timesToRepeat)
println("Happy Birthday, Jhansi!")
printBorder(border, timesToRepeat)}
Исправьте вторую часть кода.
printBorder(), чтобы также принимать количество повторений в качестве входных данных. Добавьте запятую после аргумента, а затем дополнительный аргумент: timesToRepeat: Int.
fun printBorder(border: String, timesToRepeat: Int) {
Запятая разделяет два аргумента.
timesToRepeat имя аргумента,
с последующим двоеточием: символ,
а тип: Int. timesToRepeatявляется числом, поэтому вместо того, чтобы делать его типа String, вам нужно сделать его типа Int, что является сокращением от целого числа, целого числа.
Внутри printBorder()измените, repeatчтобы использовать timesToRepeatаргумент (вместо числа 23). Ваш printBorder()код должен выглядеть так.
fun printBorder(border: String, timesToRepeat: Int) {
repeat(timesToRepeat) {
print(border)
}
println()}
Запустите свой код.
fun main() {
val border = "`-._,-'"
val timesToRepeat = 4
printBorder(border, timesToRepeat)
println(" Happy Birthday, Jhansi!")
printBorder(border, timesToRepeat)
}
fun printBorder(border: String, timesToRepeat: Int) {
repeat(timesToRepeat) {
print(border)
}
println()
}
`-._,-'`-._,-'`-._,-'`-._,-'
Happy Birthday, Jhansi!
`-._,-'`-._,-'`-._,-'`-._,-'
Комментариев нет:
Отправить комментарий