public class StringHelper {
public static String multiply(String s) {
String result = "";
for (int i=0; i<5; i++) {
result = result + s;
}
return result;
}
подскажите, почему надо писать именно result = result + s; я вообще не могу понять этогоElchin Musaev
8 уровень
не понимаю
Решен
Комментарии (10)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Wladyslaw Java Developer Master
28 июня 2019, 13:21
Берешь исходную строку и конкатенируешь ее с самой собой 5 раз, если речь о result + s, результат присваивается ссылочной переменной result. А что конкретно не понимаешь?
0
Elchin Musaev
28 июня 2019, 13:30
зачем прибавлять к result параметр метода, мы его даже не задали
не могу понять зачем вообще этот параметр тут, в задаче строку result надо вывести 5 раз, причем тут переменная s?
0
Wladyslaw Java Developer Master
28 июня 2019, 13:35
S - параметр метода. Ты его передашь при вызове метода и именно эта строка 5 раз сама с собой будет соединена, а ссылка на нее будет в result.
0
Elchin Musaev
28 июня 2019, 13:44
я наверное совсем тупой
знаю, что при вызове статического метода мы должны написать Класс.имя метода(значение параметра)
т.е мы передаем значение параметру просто чтобы была возможно вызвать метод? чет каша в голове какая-то
0
hidden #598481
28 июня 2019, 13:52решение
Так работают методы. В теле метода описывается, каким образом ты хочешь работать с параметром. В данном случае 5 раз склеить с самим собой. А при вызове метода ты задаешь значение этого параметра.
При вызове метода необязательно писать имя класса, если ты вызываешь метод, находясь в этом классе.
Если ты напишешь multiply("Hello"), в параметр s передастся значение "Hello", и вернется результат в виде "HelloHelloHelloHelloHello", передашь другую строку - вернется пятикратная другая строка.
При вызове метода с параметрами всегда происходит инициализация параметров передаваемыми значениями
+2
Elchin Musaev
28 июня 2019, 13:56
понял, но вопросы остались, зачем нам переменная result?
и почему нельзя через Ssytem.out и for 5 раз склеить этот параметр, не используя result?
0
Elchin Musaev
28 июня 2019, 14:00
т.е нельзя просто написать
а при вызове метода
получить теже самые "HelloHelloHelloHelloHello"??
0
Wladyslaw Java Developer Master
28 июня 2019, 14:09
Потому что в условии метод должен вернуть значение - строку. Дополнительная переменная нужна для того, чтобы не менять строку на которую ссылаться параметр. Если будешь использовать изначальный параметр
То уже на второй итерации строка учетверится, на третьей - будет уже 8 повторов и так далее.
0
dionisis2010 Backend Developer
28 июня 2019, 14:44решение
не путайте понятия "метод выводит строку" и "метод возвращает строку"
"выводит" значит печатет в консоль, то есть использует команду System.out.print();
"возвращает" значит, что в коде по окончанию своей работы оставит вместо себя возвращаемое значение (то что написано после "return")
+2
Elchin Musaev
28 июня 2019, 17:30
спасибо
0