Gyakorlati alapok II.

Meghívható-e a függvény eljárásként?

 

Az előző néhány fejezetben tisztáztuk az eljárás és a függvény fogalmát, illetve megismertük alapszintű működésüket.

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

Ismétlésképpen: az eljárás olyan metódus, amelyiknek nincs visszatérési értéke (void), míg a függvénynek mindig van legalább 1.

 

Ezután nincs más hátra, mint feltenni a fából vaskarika készítésének kérdését:

 

Meghívható-e függvény eljárásként?

 

Gondoljunk bele, hogy mit is állítunk a kérdéssel: meghívjuk a függvényt, de nincs szükségünk az általa szolgáltatott visszatérési értékre. Olyan ez, mintha felhívnánk valakit telefonon, de aztán mégsem szólunk bele a kagylóba, azaz –nem számítva persze a telefonbetyárkodás bulihangulatát-, tökéletesen értelmetlen cselekedet. A fentiek bizonyítására nézzünk meg néhány futtatható Java-kódot!

 

Köztudottan 27 köbgyöke 3, amelyet az egyik beépített matematikai függvény segítségével (Math.cbrt) könnyen implementálhatunk. A függvény double típusú kimeneti adatot szolgáltat, amely eredményt mi most a double eredmeny változóba vezetünk bele (double eredmeny = Math.cbrt(27)):

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

import java.math.*;

public class Main {
public static void main(String[] args) {
    double eredmeny = Math.cbrt(27);
    System.out.println(eredmeny);
    }
}

 

Végeredmény:

3.0

 

A kapcsolatot azonban bonthatjuk is, ekkor a Math.cbrt() függvényt "csak úgy" meghívjuk:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

import java.math.*;

public class Main {
public static void main(String[] args) {
    double eredmeny = 0;
    Math.cbrt(27);
    System.out.println(eredmeny);
    }
}

 

Végeredmény:

0.0

 

A köbgyökszámító függvényt ugyan meghívtuk, de nem voltunk kíváncsiak visszatérési értékére. Jól látható, hogy eredmeny és Math.cbrt() között nincs semmiféle kapcsolat, ezért a végeredmény 0.

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

A kódnak azonban van 1 különlegessége: az értelmetlen függvényhívás ellenére is hiba nélkül lefut.