JavaRush/Курси/Java Syntax Zero/Результат функції

Результат функції

Відкрита

1. Оператор return

Думаєте, ви вже вивчили все про методи в Java? Де ж пак, ви ще й половини не знаєте.

Почнімо з чогось простого. Наприклад, у Java є команда (оператор) return, який дає змогу миттєво завершити виконання методу, в якому його викликано. Зовнішній вигляд команди:

return;

І все: лише одне слово return і крапка з комою. Щойно програма виконає цю команду, робота поточного методу відразу завершиться, і продовжиться робота методу, звідки його було викликано.

Якщо return викликати в методі main, метод main на цьому завершиться, а разом із ним — вся програма.

Приклад:

class Solution
{
   public static void fill(int[] data, int from, int to, int value)
   {


     if (from < 0 || to > data.length)
       return;

     for (int i = from; i < to; i++)
     {
       data[i] = value;
     }
   }

   public static void main(String[] args)    {      int[] months = {1, 2, 3, 4, 5, 6, 7, 8 ,9, 10, 11, 12};     fill(months, 2, 10, 8);    } }


Метод fill заповнює частину переданого масиву значенням value.
Частина масиву визначається індексами from і to.
Якщо from менший за 0 або to більший за довжину масиву, метод відразу завершується.

У наведеній вище програмі є метод fill, який заповнює переданий у нього масив значенням value, причому заповнює не весь масив, а його частину, задану індексами from і to.

На початку методу fill виконується перевірка, чи коректні значення в нього передано. Якщо індекс from менший за 0 або індекс to більший за довжину масиву, то метод fill на цьому завершується (викликає команду return).

Корисна річ, цей оператор return: він є майже в кожному методі в Java, і от чому.


7
Задача
Java Syntax Zero,  7 рівень,  3 лекція
Недоступна
Ласкаво просимо! Але не всіх.
Ласкаво просимо! Але не всіх.

2. Функції з результатом void

Пам'ятаєте, ми колись з'ясували, що є команди, а є вирази? І вираз, на відміну від команди, має значення, яке можна десь використовувати.

Отож у Java методи можуть мати значення. І це дуже добра новина: методи можуть не просто щось робити залежно від параметрів, але й, приміром, обчислити що-небудь і повернути результат обчислення.

Ви, до речі, з такими методами вже стикалися:

double delta = Math.abs(d1 - d2);
Метод abs() повертає значення типу double
Scanner console = new Scanner(System.in);
int x = console.nextInt();

Метод nextInt() повертає значення типу int
String str = "Привіт";
String s2 = str.toUpperCase();

Метод toUpperCase() повертає значення типу String
int[] data = {1, 4, 5, 6, 7, 8, 11};
int[] array = Arrays.copyOf(data, 4);

Метод copyOf() повертає значення типу int[]

Кожен метод може повернути лише одне значення одного наперед заданого типу. Тип повернення значення визначається під час оголошення методу:

public static тип ім'я(параметри)
{
   код методу
}

де ім'я — це ім'я методу, параметри — список параметрів методу, а тип — тип результату, що повертається методом.

Для методів, які нічого не повертають, є спеціальний тип-заглушка — void.

Пишете свій метод і не хочете нічого повертати в метод, звідки здійснюється виклик? Просто оголосіть тип методу void, і проблему вирішено. Таких методів у Java теж багато.


3. Повернення результату

Як оголошувати метод із результатом обчислення/роботи ми щойно розібралися, а як же цей результат повернути з методу?

Для цього нам знову стане в пригоді оператор return. Передавання результату з методу матиме такий вигляд:

return значення;

де return — це оператор, який негайно завершить роботу методу. А значення — це значення, що метод має повернути як результат у той метод, звідки відбувся виклик. Тип значення має збігатися з типом, зазначеним під час оголошення методу.

Приклад 1. Метод знаходить менше з двох чисел:

int min(int a, int b)
{
   if (a < b)
     return a;
   else
     return b;
}
Метод повертає менше з двох чисел.

Якщо a < b
повернути a
Інакше —
повернути b

Приклад 2. Метод дублює переданий у нього рядок n разів:

String multiple(String str, int times)
{
   String result = "";
   for (int i = 0; i < times; i++)
     result = result + " "+ str;
   return result;
}
Метод отримує два параметри — рядок і кількість його повторень.
Створюється порожній рядок для майбутнього результату.

У циклі times разів
до рядка result додаються пробіл і рядок str.
Як результат метод повертає змінну result.

Приклад 3: Метод знаходить більше з двох чисел за допомогою тернарного оператора:

int max(int a, int b)
{
   return (a > b ? a : b);
}
Метод повертає більше з двох чисел.

Повернути (якщо a > b, то a, інакше — b)

7
Задача
Java Syntax Zero,  7 рівень,  3 лекція
Недоступна
Кубічний калькулятор
Кубічний калькулятор
7
Задача
Java Syntax Zero,  7 рівень,  3 лекція
Недоступна
Кубічний калькулятор у кубі
Кубічний калькулятор у кубі
Коментарі (18)
  • популярні
  • нові
  • старі
Щоб залишити коментар, потрібно ввійти в систему
Ihor Klymov
Рівень 10
30 липня 2024, 19:41
У вас зазначено, що: Метод abs() повертає значення типу double Мабуть метод повертає модуль числа, а результат записується у форматі double ?
hidden #3500645
Рівень 30
28 листопада 2024, 12:20
Метод Math.abs() повертає модуль числа, а тип значення, яке він повертає, залежить від типу аргументу, переданого методу. Тому обидва твердження коректні) Якщо передати аргумент типу double, результат також буде double, тому вираз Метод abs() повертає значення типу double коректний, просто не конкретизований)
Sanya
Рівень 11
Expert
8 квітня 2023, 15:13
cube(a)*cube(a)*cube(a) cube(a*a*a) cube(cube(a)) Перевірку проходить лише один...
Julia Oskilko Full Stack Developer
30 вересня 2023, 13:25
В умові сказано чому саме так У методі ninthDegree() піднеси переданий аргумент до третього степеня за допомогою методу cube(); отриманий результат знову передай у метод cube().
Андрии Бумер
Рівень 41
19 грудня 2023, 19:51
шкода що побачив тільки після того як вирішив. Довелось добряче попітніти...
Марк Диванний експерт в Ютуб
1 березня 2023, 18:21
Як все цікаво! тільки ніц не зрозумів що де приймає і куди повертає! Навіть коли подивився на вірні рішення, все-рівно не зрозумів аж нічого!
Андрии Бумер
Рівень 41
19 грудня 2023, 19:53
Приймає одзазу метод, котрий зводить до 9 ступеня. Віна приймає чило, вовертає в "куб" де число зводиться в третій степінь, а потім повторює операцію вже з поверненим числом. тобто приймається число а, чке двічі повертається вметод куб, за рахуноч чого отримуємо 9 ступіню. Наче якось так має бути, сподіваюсь, що доступно. cube(cube(a))
Kostiantyn Bogatyrchuk Двірник в УМАНСЬКЕ РЕУ №3, КПExpert
21 січня 2023, 15:36
"Думаєте, ви вже вивчили все про методи в Java? Де ж пак, ви ще й половини не знаєте" Де ж пак🤣🤣🤣
Peace The Ball Домогосподиня в Диван у вітальні
2 жовтня 2022, 17:26
Автор українського тексту з Іршавського району? 😅
Pavlo Plynko Java-разработчик в CodeGymExpert
11 жовтня 2022, 12:48
є альтернатива? типу "та де там" ?
Peace The Ball Домогосподиня в Диван у вітальні
15 жовтня 2022, 15:47
Це був лише жарт, жодного негативного окрасу. В Іршавському районі живуть чудові люди. Я помітив слово яке часто вживається у знайомому мені діалекті. То для мене було трохи ностальгічно то я і вирішив пожартувати.
Pavlo Plynko Java-разработчик в CodeGymExpert
18 жовтня 2022, 09:33
💛💙
Roma Chernesh
Рівень 16
17 грудня 2022, 14:03
Кому буде цікаво: "де ж пак" - уживається для вираження сумніву. Походить слово "пак" з Іршавського району (Західна Україна). Початкове значення "потім"
Kostiantyn Bogatyrchuk Двірник в УМАНСЬКЕ РЕУ №3, КПExpert
22 січня 2023, 08:44
та вже не перший раз таке тут зустрічається. таке враження, що перекладав алгоритм, а потім переклад перевірявся російськомовним працівником
Марк Диванний експерт в Ютуб
26 лютого 2023, 10:46
А з Іршавського району розповсюдилось мало не по всьому Закарпатті)
dianosauric
Рівень 42
11 вересня 2022, 08:27
УРА! тепер ми знаємо чому використовуємо цей void, котрий досить часто зустрічали
Taras Woytowitch
Рівень 16
4 січня 2022, 15:25
Трохи взрив башні)
Taras Woytowitch
Рівень 16
1 січня 2023, 11:56
а через місяць і 10 днів взрив башні буде у русні