CodeGym /Kurslar /Java SELF AZ /Funksiyanın nəticəsi

Funksiyanın nəticəsi

Java SELF AZ
Səviyyə , Dərs
Mövcuddur

1. return operatoru

Düşünürsünüz ki, artıq Java metodları haqqında hər şeyi öyrənmisiniz? Elə deyil, siz hələ yarısını belə bilmirsiniz.

Gəlin nədənsə sadədən başlayaq. Məsələn, Java-da return əmri (operatoru) var ki, bu, çağırıldığı metodu dərhal dayandırmağa imkan verir. Əmr belə görünür:

return;

Hamısı: sadəcə bir söz return və nöqtə-vergül. Proqram bu əmri icra edər-etməz, cari metodun işi dərhal sona çatır və çağırılan metodun işi davam edir.

Əgər return əsas metodda (main) çağırılsa, main metodu dərhal sona çatar və onunla bərabər bütün proqram da dayanar.

Nümunə:

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);    } }


Metod fill ötürülən array-in bir hissəsini value qiyməti ilə doldurur.
Array-in hissəsi indekslərə görə müəyyən edilir: from və to.
Əgər from 0-dan kiçikdirsə və ya to array-in uzunluğundan böyükdürsə, metod dərhal sona çatar.

Yuxarıdakı proqramda fill metodu var ki, ona ötürülən array-i müəyyən qiymətlə doldurur value. Amma tam array yox, yalnız fromto indekslərinə görə təyin olunmuş hissəsini doldurur.

fill metodunun əvvəlində yoxlanılır ki, ötürülən qiymətlər düzgündürmü. Əgər from 0-dan kiçikdirsə və ya to array-in uzunluğundan böyükdürsə, fill metodu dərhal dayandırılır (return əmri çağırılır).

Bu return operatoru çox faydalıdır: Java-dakı demək olar ki, hər bir metodda var və niyə belə olduğunu artıq bildiniz.



2. Nəticə ilə funksiyalar, void

Yadınızdadırsa, əvvəllər danışmışdıq ki, komanda və ifadələr anlayışları var. İfadələr komandadan fərqli olaraq hansısa bir mənaya malikdir və həmin mənanı başqa bir yerdə istifadə etmək olar.

Bax belə bir şey var ki, Java-da metodların mənası ola bilər. Bu çox yaxşı xəbərdir: metodlar parametrlərə əsasən nəsə etməkdən başqa, nəsə hesablaya və bu hesablamanın nəticəsini qaytara bilərlər.

Əslində, siz belə metodlarla artıq tanışsınız:

double delta = Math.abs(d1 - d2);
Metod abs() double tipində bir qiymət qaytarır
Scanner console = new Scanner(System.in);
int x = console.nextInt();

Metod nextInt() int tipində bir qiymət qaytarır
String str = "Salam";
String s2 = str.toUpperCase();

Metod toUpperCase() String tipində bir qiymət qaytarır
int[] data = {1, 4, 5, 6, 7, 8, 11};
int[] array = Arrays.copyOf(data, 4);

Metod copyOf() int[] tipində bir qiymət qaytarır

Hər bir metod yalnız bir qiymət və əvvəlcədən təyin olunmuş bir tip qaytara bilər. Metodun qaytardığı qiymətin tipi metodun elanında göstərilir:

public static tip ad(parametrlər)
{
   metodun kodu
}

Burada ad — metodun adı, parametrlər — metodun parametrlərin siyahısı, və tip — metodun qaytardığı nəticənin tipi.

Heç bir nəticəni qaytarmayan metodlar üçün xüsusi bir görünməz tip var — void.

Öz metodunuzu yazırsınız və çağırış edən metod üçün heç nə qaytarmaq istəmirsiniz? Sadəcə metodun tipini void elan edin və məsələ həll oldu. Java-da belə metodlar kifayət qədər çoxdur.


3. Nəticənin qaytarılması

Hesablama/metodun işi nəticəsi olan metodu necə elan etmək barədə artıq danışdıq, bəs bu nəticəni metoddan necə qaytarmaq olar?

Bunun üçün bizə yenidən return operatoru lazım olacaq. Metoddan nəticənin ötürülməsi belə görsənəcək:

return dəyər;

Burada return — operatorudur ki, metodun işini dərhal dayandırır. Və dəyər — metodun çağıran metoda qaytarmalı olduğu nəticədir. dəyər-in tipi mütləq metodu elan edərkən göstərilmiş tip ilə uyğun olmalıdır.

Nümunə 1. Metod iki ədədin minimumunu hesablayır:

int min(int a, int b)
{
   if (a < b)
     return a;
   else
     return b;
}
Metod iki ədədin minimumunu qaytarır.

Əgər a < b
qaytar a
Əks halda
qaytar b

Nümunə 2. Metod ötürülən string-i n dəfə təkrarlayır:

String multiple(String str, int times)
{
   String result = "";
   for (int i = 0; i < times; i++)
     result = result + " "+ str;
   return result;
}
Metod iki parametr qəbul edir — string və onun təkrarlanma sayı.
Gələcək nəticə üçün boş string yaradılır.

Dövrdə times dəfə
result string-ə boşluq və str string əlavə olunur.
Nəticə olaraq metod result dəyişənini qaytarır.

Nümunə 3: Metod iki ədədin maksimumunu ternar operatoru ilə hesablayır:

int max(int a, int b)
{
   return (a > b ? a : b);
}
Metod iki ədədin maksimumunu qaytarır.

qaytar (əgər a > b, onda a, əks halda b)

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION