Şimdi Ara

Return komutunu bilenler gelebilir

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
12
Cevap
0
Favori
317
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar fonksiyon oluştururken bu return ifadesini neden kullanıyoruz mantığı nedir. Evet fonksiyon içinde fonksiyon çağırırken return ile sanırsam başa döndürüyoruz lakin bunun haricinde her şeyin sonunu return ile bitirmenin mantığı nedir? şimdiden teşekkürler

    < Bu ileti mobil sürüm kullanılarak atıldı >



  • return fonksiyonu çağırana değer döndürür. Bir fonksiyon return ile bitmeyebilir, fonksiyon eğer değer döndürüyorsa return kullanılır. void fonksiyonlar değer döndürmez mesela.

    örneğin:

    void foo() {
    Console.WriteLine("ok");
    }

    burada değer döndürmemiş.


    Main fonksiyonun içinde
    var b = goo();
    olsun. b'ye atanacak değer goo() fonksiyonun değeri, daha doğrusu fonksiyonun döndürdüğü değer buradaki örnekte 1 .

    int goo() {
    return 1;
    }
  • En başta fonksiyonun tanımına bakarsak; fonksiyon belirli bir işi yapması için tanımlanmış alt programlardır. İhtiyaç duyulduğu yerde çağırılıp kullanılır. Buradan yola çıkarak ana programın herhangi bir yerinde bir fonksiyonu çağırdığınızı düşünelim. Çağırdığınız bu fonksiyon tanımlandığı işi yapar ve ana program kaldığı yerden devam eder. Çağırılan bu fonksiyon birşey hesaplayıp bunu ana programa göndermesi gerekiyorsa o zaman return ile bu değeri gönderir. Eğer göndermesi gereken birşey yoksa o zaman return de kullanılmaz. Bu yapılacak işe göre değişiklik gösterir.

    Özetle bir fonksiyon çağırıldığı yere bir değer göndermesi gerekiyorsa return yazılır. Genelde birşey hesaplayan fonksiyonlar hesapladığı değeri return ile gönderecek şekilde tanımlanır. Çünkü hesaplanan değerle ne iş yapılacağına fonksiyon karışmaz onu ana programa return ile gönderir. Ana programda ise kullanıcı o değerle ne yapmak isterse onu yapar.




  • hyrgul H kullanıcısına yanıt
    Anladım hocam teşekkürler sanırım fonksiyon yaparken biz bazı parametreler koyuyoruz ve o parametreleri bazen topluyor, bazen çarpıyor karesini, küpünü vb alıyoruz fakat bilgisayar bunları yapıyor lakin anlamlandıramıyor anlamlandıramadığı için 'None' gibi hatalar veriyor biz en son nihai olarak fonksiyonun output'unun ne olduğunu belirliyoruz bunu da return komutu yapıyor haksızmıyım?

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • "Call Stack" sebebiyle. Mimari bu sekilde. Void function da return eder. C benzeri dillerde void method/function 'lara "return;" yazabilmenin sebebi budur. Void vs Null.

    https://en.wikipedia.org/wiki/Call_stack



    < Bu mesaj bu kişi tarafından değiştirildi Mephalay -- 23 Haziran 2019; 19:44:29 >
    < Bu ileti mobil sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: patatessiz patso

    return fonksiyonu çağırana değer döndürür. Bir fonksiyon return ile bitmeyebilir, fonksiyon eğer değer döndürüyorsa return kullanılır. void fonksiyonlar değer döndürmez mesela.

    örneğin:

    void foo() {
    Console.WriteLine("ok");
    }

    burada değer döndürmemiş.


    Main fonksiyonun içinde
    var b = goo();
    olsun. b'ye atanacak değer goo() fonksiyonun değeri, daha doğrusu fonksiyonun döndürdüğü değer buradaki örnekte 1 .

    int goo() {
    return 1;
    }
    Hocam anladım az çok return komutunu ama şu değer döndürmekten kastımız ne izah eder misiniz basitçe? Şuan sadece Python'u öğreniyorum yazdığınız kodları, dilini bilmiyorum.
  • quote:

    Orijinalden alıntı: NinJaus

    Hocam anladım az çok return komutunu ama şu değer döndürmekten kastımız ne izah eder misiniz basitçe? Şuan sadece Python'u öğreniyorum yazdığınız kodları, dilini bilmiyorum.

    Alıntıları Göster
    Değer döndürme "return 0;" mesela 0 döndürüyor. Ne döndürmesini istiyorsan onu return ile fonksiyonu çağırana döndürebilirsin

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Perl 'de return istege bağlıdır. Yani fonksiyonun sonuna return a yerine sadece a yazabiliyorsun o durumda tabi ki a nın degerini döndürür.
  • NinJaus kullanıcısına yanıt
    Selamunaleyküm,

    Öncelikle niye fonksiyon yazdığımızı anlatayım. Fonksiyon yazmamızın mantığı aynı şeyleri tekrarlamamak ve kodumuzu temiz tutmak, en azından ben bu yüzden fonksiyon kullanıyorum.

    Mesela Python daki print fonksiyonu, ALLAH bilir o fonksiyonun içinde neler vardır, normalde o fonksiyon olmasa idi, ekrana her bir şey yazdırmak istediğimizde o fonksiyonun içerisindeki her şeyi tekrar tekrar yazmak gerekirdi. Ama print diyerek tak diye bir anda yazdırıyoruz.

    Gelelim return'e. Neyin nesi bu return? Hiç de gerek yok, ben işlemleri fonksiyonda yapıp ekrana print ediyorum. Her şey harika. Ne gerek var ki! Örneğin:

    def topla(x, y)
    print(x+y)
    topla(1, 3) #Çıktı 4

    Tertemiz çalışan fonksiyon.

    Doğru fonksiyon güzel çalışıyor, ama diyelim ki benim bir programda birden fazla toplama işlemine ihtiyacım var ve benim bu toplama işlemi sonuçlarını program içerisinde ki değişkenlere atmam lazım.

    E hadi deneyelim:

    birinciSonuc = topla(1, 4)
    ikinciSonuc = topla(9, 1)

    print(birinciSonuc)
    print(ikinciSonuc)

    #Çıktı 5
    # 10
    # None
    # None

    Niye böyle oldu, 5 ve 10 doğru, ama niye değişkenlerin içinde None diye bir şey var da 5 ve 10 yok?

    İşte bunu yapmak için Python da return var.

    Nasıl return etcez ve neyin nesidir bu?

    def topla(x,y):
    return x+y #Hesaplanan değeri fonksiyonun çağırildığı yere gönder.

    Yani:

    birinciSonuc = topla(1, 4) dediğinde topla(1,4) yerine, return ün sağında olan x+y(x in 1, y nin 4 olduğunu varsayıyoruz, yani 1+4 geldi aslında) geliyor, sonuç ta 5 olduğundan 5 sayısı geliyor.

    Yani

    birinciSonuc = 5

    haline geliyor. Bu yüzden birinciSonuc un değeri 5.

    Özetle:

    birinciSonuc = topla(1, 4)
    ikinciSonuc = topla(9, 1)

    print(birinciSonuc)
    print(ikinciSonuc)

    #Çıktı 5
    # 10

    olacak.

    Peki neden önceden None idi?

    Çünkü Python daki fonksiyonlar her zaman gizli bir şekilde None değerini return eder.

    Yani:

    def topla(x,y)
    print(x+y)
    #return None; Her zaman en sonda gizli bir şekilde bunun olduğunu hayal edebiliriz. Bu yüzden hiçbir şey döndürmesek dahi None dönecektir.


    Not: Bunları yazarken kendime hitap ettim.



    < Bu mesaj bu kişi tarafından değiştirildi imammmm -- 25 Haziran 2019; 15:7:13 >
    < Bu ileti mobil sürüm kullanılarak atıldı >




  • imammmm İ kullanıcısına yanıt
    Aleyküm selam,

    İşte aradığım yanıt, çok güzel anlattınız aklımda soru işareti kalmadı sonunda rahat uyuyabilirim artık



    < Bu mesaj bu kişi tarafından değiştirildi NinJaus -- 25 Haziran 2019; 18:25:59 >
    < Bu ileti mobil sürüm kullanılarak atıldı >
  • NinJaus kullanıcısına yanıt
    Estağfurullah hocam, Rabbime şükürler olsun güzel anlaşıldıysa eğer.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.