Аргументы, переменные и инструкции

Новички иногда пытаются сделать примерно такое определение функции:

static void showDate("Today is: December 5") {
  // какой-нибудь код
}

Запустить код не получится — он содержит синтаксическую ошибку. Вместо переменной в аргументе написана строка, то есть значение.

Аргумент должен быть переменной, иначе он не сможет быть аргументом, то есть чем-то, что принимает значение при вызове.

Если же вам нужна какая-то информация в функции, и вы заранее знаете, какая именно, то аргумент для этого не нужен, ведь мы уже умеем сохранять значения для последующего использования — достаточно создать переменную в самом теле:

public static void showDate() {
  var text = "Today is: December 5";
  // какой-нибудь код
}

Обратите внимание: после определения функции (после закрывающей фигурной скобки) мы не ставим ;.

Символ ; ставится в конце выражений. Определение функции — не выражение, а инструкция. Соответственно, мы не можем его использовать в составе других выражений и ему не нужна ; в конце.

Понятие «создать функцию» имеет много синонимов: «реализовать», «определить» и даже «заимплементить» (от слова implement). Все они встречаются в повседневной практике на работе.

Задание

Сэм составляет множество карт, и ему часто нужно выводить на экран повторяющиеся символы для визуализации маршрутов. Например, так Сэм иллюстрирует узкие дороги между городами:

Meereen =-=-=-=- Myr

А так иллюстрирует широкие трассы:

Vaes Dothrak ======== Vahar

Сэм где-то нашёл функцию repeat из класса Functions. Она принимает два аргумента: какое-то число N и строку, и возвращает повторенную N раз строку. Вот как он использует её:

System.out.print(Functions.repeat("=-", 4));
=-=-=-=-

Сэм не очень доволен. Неудобно вызывать сотни раз repeat внутри вызова System.out.print.

Напишите для Сэма функцию printSeq, которая сама выводит на экран получившиеся повторения. Она принимает два аргумента — строку и число, и выводит повторяющуюся строку на экран. Для генерации строки используйте repeat.

Вот пример того, как Сэм будет использовать написанную вами printSeq:

App.printSeq("=-", 4);
=-=-=-=-

Как обычно, функцию нужно сделать public static, а не просто static, чтобы мы смогли вызвать ее из другого класса.


Нашли ошибку? Есть что добавить? Пулреквесты приветствуютсяhttps://github.com/hexlet-basics

Упражнение доступно только авторизованным пользователям.

Пожалуйста, авторизуйтесь с помощью учётной записи GitHub, это необходимо для отслеживания прогресса выполнения уроков. Если у вас ещё нет учётной записи, то сейчас самое время создать аккаунт на GitHub.