Fonksiyonlar
Belirli bir görevi gerçekleştirir. Parametreler alabilir ve sonuç döndürebilir. Kodların tekrardan kullanılabilirliğini sağlar.
Fonksiyon Oluşturma: <erişimTürü> <döndürmeTürü> <fonksiyonAdı>(<parametreler>){<kodlar>}
Fonksiyon Kullanımı: <fonksiyonAdı>(<parametreler>)
Erişim türlerini Sınıflar bölümünde öğreneceğimiz için boş bırakın.
Fonksiyonumuz değer döndürecekse "<döndürmeTürü>" kısmına döndüreceği veri tipini yada nesneyi yazarız değer döndürmeyecekse "fonk" yazarız.
Fonksiyon adları küçük harfle yada "_" ile başlar.
Yazılan kodlar istenilen yazılım diline derlenirken A dilindeki anahtar kelimeler kullanılır. Bu nedenle, fonksiyon adları olarak kullanılamaz. Kullanılırsa hatalara yol açabilir.
Parametreler "," ile ayrılır.
Örnek:
anafonk(){
selamVer();
yazdır("2 üssü 3 = {üs(2, 3)}");
}
statik fonk selamVer() yazdır("Merhaba");
statik Tam üs(Tam taban, Tam üs){
Tam sonuç=1;
döngü(Tam s=0; s<üs; s++)sonuç*=taban;
döndür sonuç;
}
Çıktı:
Merhaba
2 üssü 3 = 8
"anafonk" fonksiyonunu Temel Sözdizimi bölümünde görmüştük. "anafonk" statiktir. Statik fonksiyonlarda sadece statik nesneler ve fonksiyonlar kullanılır. Bundan dolayı "selamVer" ve "üs" fonksiyonlarını statik yaptık. "statik" ifadesini Sınıflar bölümünde daha detaylı öğreneceğiz.
Farklı Parametre Aynı Ad
Fonksiyonlar farklı parametrelerle aynı ada sahip olabilirler.
anafonk(){
topla(1, 2);
topla(4.7o, 3.3o);
}
statik fonk topla(Tam s1, Tam s2) yazdır("{s1}+{s2}={s1+s2}");
statik fonk topla(Ondalık s1, Ondalık s2) yazdır("{s1}+{s2}={s1+s2}");
Çıktı:
/*
Çıktı:
1+2=3
4.7+3.3=8.0
*/
Tam ve ondalık sayıları toplayan 2 tane "topla" fonksiyonu yaptık.
Kapsam
Nesnelere yalnızca oluşturuldukları blokta erişilebilir.
statik Tam sayı1=5;
anafonk(){
Tam sayı2=10;
yazdır(sayı1); //5
yazdır(sayı2); //10
}
statik fonk f(){
yazdır(sayı1); //5
yazdır(sayı2); //Hata
}
"sayı1" değişkeni tüm sınıfta tanımlandığından sınıfın her yerinde kullanılabilir. "sayı2" değişkeni "anafonk" içinde tanımlandığından sadece "anafonk" içinde kullanılabilir. "f" fonksiyonunda kullanılamaz.