Alt programlar: prosedürler ve işlevler - 2


Bir işlev, bir sonuç (sayı, sayı, karakter satırı vb.).

Bir çevrimiçi mağazadan bir ürün sipariş ettiğinizi düşünün. Programlama açısından, bir alt program çağırdınız ve bir prosedürden farklı olarak, bu alt program bir sonuç döndürmelidir - sipariş ettiğiniz ürünü teslim edin. Bu alt programlara işlevler denir.
Bir işlev, prosedürle tam olarak aynı şekilde biçimlendirilir. Prosedürden tek fark, özel bir return işlecinin bulunmasıdır,
 bundan sonra ana programa döndürülecek değer yazılır.

İki tamsayının aritmetik ortalamasını döndüren bir işlev şöyle görünür:
kayan ortalama(int a, int b)
{
    float ortalama = (a + b) / 2.0;
    ağustos dönüşü;
}
Geriye ana programda bu fonksiyonun nasıl çağrılacağını bulmak kalır. Bir işlevi prosedürle aynı şekilde çağırmamalısınız:
ortalama(10, 5); 
İşlev tarafından döndürülen değer kaybolacak. Sanki çevrimiçi mağazadaki mallar kimseye verilmemiş, atılmış gibidir. Müşterinin beğenmesi pek olası değil.

Sonucu bir değişkende saklamak (veya ekranda göstermek) daha doğrudur:
float a = ortalama(10, 5); 
Console.WriteLine(ortalama(10, 5));< /kod>

Programcılar genellikle true veya false (true) boolean değerleri döndüren boolean işlevleri kullanır veya yanlış).
Bu tür işlevler, bir özelliği kontrol etmek için kullanışlıdır.
Bir sayının eşitliğini kontrol eden mantıksal bir fonksiyon yazmaya ilişkin iki örneği ele alalım

İşlevler ve prosedürlerle çalışmayla ilgili son not: programdaki işlev ve prosedür sayısı sınırlı değildir. Ayrıca, bir alt program başka bir alt programı ve hatta kendisini çağırabilir.
Ayrıca program, işlevde dönüş değerine ulaştıktan sonra, program işlevi yürütmeyi hemen durdurur ve değeri döndürür.
Yani tablodan ikinci örnek de şu şekilde kısaltılabilir:
bool isEven(int n)
{
    eğer (n % 2 == 0) {
        True'yu döndür
    }
    False döndür;
}

 

En iyi yol:
ifade sonucu
n % 2 == 0
doğru (doğru) veya yanlış (yanlış) olacaktır
Koşullu bir ifade yazmaya gerek yok.
Bunu yapma.
Elbette bunu yapabilirsin ama bu daha uzun bir giriş.
bool isEven(int n)
{
    dönüş (n % 2 == 0);
}
bool isEven(int n)
{
    eğer (n % 2 == 0) {
        doğru dönüş;
  }
    başka {
        Yanlış döndür;
  }
}