Funktsiyaning Natijasi

All lectures for UZ purposes
Daraja, Dars
Mavjud

1. return operatori

Java'da metodlar haqida hammasini o‘rgangan deb o‘ylaysizmi? Xato! Hali yarmiga ham yetmadingiz.

Keling, oddiy narsadan boshlaymiz. Masalan, Java'da return degan buyruq (operator) bor, u kiritilgan metodni darhol tugatishga imkon beradi. Buyruq ko‘rinishi:

return;

Hammasi: faqat bitta so‘z return va nuqtali vergul. Dastur bu buyruqni bajargan zahoti, joriy metod ishlashini to‘xtatadi va chaqiruvchi metod ishlashda davom etadi.

Agar return ni main metodida chaqirsangiz, main metodi shu zahoti tugaydi va butun dasturni to‘xtatadi.

Misol:

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 metodi berilgan massivning bir qismini value qiymati bilan to‘ldiradi.
Massiv qismini from va to indekslari belgilaydi.
Agar from 0 dan kichik yoki to massiv uzunligidan katta bo‘lsa, metod darhol to‘xtaydi.

Yuqorida keltirilgan dasturda fill degan metod bor, u berilayotgan massivning value qiymatini indekslar orqali ko‘rsatilgan qismigina to‘ldiradi.

fill metodining boshida, unga kiritilgan qiymatlar to‘g‘ri yoki noto‘g‘riligini tekshirish amalga oshiriladi. Agar from 0 dan kichik, yoki to massiv uzunligidan katta bo‘lsa, fill metodi darhol tugaydi (return buyrug‘i chaqiriladi).

Bu return operatori juda foydali narsa: Java'dagi deyarli har bir metodda mavjud, va nima uchunligini ko'rasiz.



2. Natijalari bo'lgan funksiyalar, void

Eslaysizmi, biz bir paytlar buyruqlar va ifodalar borligini muhokama qilgandik. Ifoda buyruqdan farqli ravishda, qandaydir qiymatga ega bo‘ladi, uni boshqa yerlarda ishlatishingiz mumkin.

Xo‘sh, Java'da metodlar qiymatga ega bo‘lishi mumkin. Bu juda yaxshi yangilik: metodlar nafaqat parametrlar asosida nimadir qilishlari mumkin, balki, masalan, biror narsani hisoblash va hisoblash natijasini qaytarish mumkin.

Siz aslida bunday metodlar bilan tanishgan edingiz:

double delta = Math.abs(d1 - d2);
Metod abs() double turidagi qiymatni qaytaradi
Scanner console = new Scanner(System.in);
int x = console.nextInt();

Metod nextInt() int turidagi qiymatni qaytaradi
String str = "Salom";
String s2 = str.toUpperCase();

Metod toUpperCase() String turidagi qiymatni qaytaradi
int[] data = {1, 4, 5, 6, 7, 8, 11};
int[] array = Arrays.copyOf(data, 4);

Metod copyOf() int[] turidagi qiymatni qaytaradi

Har bir metod faqat bitta qiymatni va oldindan belgilangan bitta turdagi qiymatni qaytarishi mumkin. Qaytariladigan qiymat turi metod e'lon qilinayotganda belgilanadi:

public static tur nom(parametrlar)
{
   metod kodi
}

Bu yerda nom — bu metod nomi, parametrlar — metodning parametrlar ro'yhati, va tur — metod qaytaradigan qiymat turi.

Hech narsa qaytarmaydigan metodlar uchun maxsus void tipidagi-zaglushka mavjud.

O‘z metodingizni yozmoqchimisiz va chaqiruvchi metodga hech narsa qaytarmoqchi emasmisiz? Faqatgina metod turini void deb e'lon qiling, va muammo hal etiladi. Java'da ham bunday metodlar juda ko‘p.


3. Natijani qaytarish

Hisoblash/islanish natijasi bilan metodni qanday e'lon qilishni tushundik, xuddi shu natijani metodning o‘zidan qanday qaytarish mumkin?

Buning uchun bizga yana return operatori kerak bo‘ladi. Metoddan natijani qaytarish quyidagicha ko‘rinadi:

return qiymat;

Bu yerda return — bu operator, u metodni darhol tugatadi. Va qiymat — bu natijat sifatida chaqiruvchi metodga qaytarilishi kerak bo‘lgan qiymat. qiymat turi metod e'lon qilinayotganda ko'rsatilgan tur bilan mos kelishi kerak.

Misol 1. Metod ikki raqamning minimumini hisoblaydi:

int min(int a, int b)
{
   if (a < b)
     return a;
   else
     return b;
}
Metod ikki raqamning minimumini qaytaradi.

Agar a < b
qaytar a
Aks holda
qaytar b

Misol 2. Metod kiritilgan matnni n marta dublikat qiladi:

String multiple(String str, int times)
{
   String natija = "";
   for (int i = 0; i < times; i++)
     natija = natija + " "+ str;
   return natija;
}
Metod ikkita parametrni qabul qiladi — matn va uning necha marta takrorlanishini.
Bo'lajak natija uchun bo'sh satr yaratiladi.

times martta siklda
natija satriga bo'sh joy va str qo'shiladi.
Metod natijasi sifatida natija o'zgaruvchisi qaytariladi.

Misol 3: Metod ikkita raqamning maksimumini ternar operator orqali hisoblaydi:

int max(int a, int b)
{
   return (a > b ? a : b);
}
Metod ikkita raqamning maksimumini qaytaradi.

qaytar (agar a > b bo'lsa a, aks holda b)

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION