JAVA METODAI

Java return ir grąžinamosios reikšmės

Metodas gali ne tik atlikti veiksmą, bet ir apskaičiuoti bei grąžinti rezultatą. Grąžinamosios reikšmės tipas rašomas vietoje void, o rezultatas perduodamas su return.

void ar grąžinamoji reikšmė?

Java metodų rezultatų palyginimas
Metodo tipasElgsenaPavyzdys
voidNegrąžina reikšmėsstatic void pasisveikinti()
intGrąžina sveikąjį skaičiųstatic int sudetiKainas()
booleanGrąžina true arba falsestatic boolean arSilta()
StringGrąžina tekstąstatic String apibudintiOra()

Reikšmės grąžinimas

Šis metodas priima pradinę prekės kainą, atima 5 eurų nuolaidą ir grąžina naują kainą:

public class Main {
    static int pritaikytiNuolaida(int pradineKaina) {
        return pradineKaina - 5;
    }

    public static void main(String[] args) {
        System.out.println(pritaikytiNuolaida(25));
    }
}
Konsolės rezultatas

20

  1. Iškviečiant metodą argumentas 25 perduodamas parametrui pradineKaina.
  2. Metodo viduje apskaičiuojama išraiška 25 - 5.
  3. return grąžina gautą skaičių 20 atgal į iškvietimo vietą.
  4. Grąžinta reikšmė patenka į println(), todėl konsolėje matome 20.
  5. Kadangi metodo tipas yra int, grąžinamas rezultatas taip pat turi būti sveikasis skaičius.

Rezultatas iš kelių parametrų

return gali grąžinti išraiškos rezultatą, apskaičiuotą naudojant kelis parametrus:

public class Main {
    static int sudetiKainas(int duonosKaina, int pienoKaina) {
        return duonosKaina + pienoKaina;
    }

    public static void main(String[] args) {
        System.out.println(sudetiKainas(3, 2));
    }
}
Konsolės rezultatas

5

  1. Metodui perduodama duonos kaina 3 ir pieno kaina 2.
  2. Šios reikšmės patenka į parametrus duonosKaina ir pienoKaina.
  3. return apskaičiuoja 3 + 2 ir grąžina 5.
  4. println() parodo grąžintą rezultatą konsolėje.

Metodo rezultato saugojimas

Grąžintą reikšmę galima iš karto naudoti arba išsaugoti suderinamo tipo kintamajame:

public class Main {
    static int sudetiKainas(int duonosKaina, int pienoKaina) {
        return duonosKaina + pienoKaina;
    }

    public static void main(String[] args) {
        int bendraKaina = sudetiKainas(3, 2);
        System.out.println("Bendra kaina: " + bendraKaina + " eurai");
    }
}
Konsolės rezultatas

Bendra kaina: 5 eurai

  1. Metodas sudetiKainas(3, 2) apskaičiuoja ir grąžina skaičių 5.
  2. Šį kartą rezultatas nėra spausdinamas iš karto.
  3. Jis išsaugomas int kintamajame bendraKaina.
  4. Kitą eilutę šį kintamąjį sujungiame su paaiškinamuoju tekstu ir parodome konsolėje.
Rezultato kintamasis dažnai padaro kodą aiškesnį.

Jam galima suteikti prasmingą pavadinimą, panaudoti keliose vietose arba patikrinti prieš tęsiant programą.

Kiti grąžinamųjų reikšmių tipai

Metodas gali grąžinti ne tik skaičių. Pavyzdžiui, boolean rezultatas tinka sąlygai apskaičiuoti:

public class Main {
    static boolean arSilta(int temperatura) {
        return temperatura >= 20;
    }

    public static void main(String[] args) {
        boolean silta = arSilta(22);
        System.out.println(silta);
    }
}
Konsolės rezultatas

true

  1. Metodui arSilta() perduodama temperatūra 22.
  2. Metodo viduje patikrinama sąlyga 22 >= 20.
  3. Ši sąlyga yra teisinga, todėl return grąžina loginę reikšmę true.
  4. Grąžinta reikšmė išsaugoma boolean kintamajame silta.
  5. println() konsolėje parodo true.

return sąlygose

Skirtingos metodo šakos gali grąžinti skirtingus rezultatus:

public class Main {
    static String apibudintiOra(int temperatura) {
        if (temperatura < 0) {
            return "Šalta";
        }

        if (temperatura < 20) {
            return "Vėsu";
        }

        return "Šilta";
    }

    public static void main(String[] args) {
        System.out.println(apibudintiOra(15));
    }
}
Konsolės rezultatas

Vėsu

  1. Metodui perduodama temperatūra 15.
  2. Pirmoji sąlyga tikrina 15 < 0. Ji klaidinga, todėl Šalta negrąžinama.
  3. Antroji sąlyga tikrina 15 < 20. Ji teisinga.
  4. return "Vėsu" grąžina tekstą ir iš karto užbaigia metodo vykdymą.
  5. Paskutinė eilutė return "Šilta" šio iškvietimo metu nebepasiekiama.
Pasiekus return, metodas sustoja.

Jei perduotume -5, būtų grąžinta Šalta. Jei perduotume 25, abi sąlygos būtų klaidingos ir metodas grąžintų Šilta.

Svarbios return taisyklės

  • Grąžinama reikšmė turi atitikti deklaruotą metodo tipą.
  • Reikšmę grąžinantis metodas turi pateikti rezultatą visuose galimuose vykdymo keliuose.
  • return iš karto užbaigia metodo vykdymą.
  • Po besąlyginio return tame pačiame bloke negali būti pasiekiamo kodo.
  • void metode galima naudoti tuščią return; ankstyvam išėjimui, tačiau negalima grąžinti reikšmės.