Dönüş değerleri
n adlı bir int alan ve o sayının iki katını geri gönderen twice adlı bir metot yazın. Başlık void ile değil int ile başlar: static int twice(int n). Süslü parantezlerin içine return n * 2; yazın. Main içinde çağrının sonucunu yazın: Console.WriteLine(twice(7));. Ekran bir satır göstermelidir: 14. twice kendisi WriteLine çağırmaz. Yalnızca 14ü geri verir. Main o sayıyı yazar. Bu geri verme, bu sayfanın öğrettiği şeydir. Genel sınıf adını Pine tutun.
Main’e bir sayı geri verin
Parametreler sayfasında greet ve show metot gövdesinin içinde yazıyordu. Çağrı içeri bir değer gönderiyor, metot ekrana yazıyordu. Burada metot hâlâ bir değer alır, ama dışarı da bir değer gönderir. return sözcüğü bu giden değeri işaretler. Main onu saklayabilir veya yazabilir.
Pine dosyasını açın. Sınıf adı Pine kalır. Bu sayfa türü yeniden adlandırmaz. Hâlâ metot içinde yalnız hi lena yazan bir greet demosu Main’de tuttuğunuz her şeyse onu silin. Artakalan her ring();i silin. Her ReadLine satırını silin. Tutacağınız dosyada yazı bekleyişi yoktur.
Main dışında, hâlâ sınıf süslü parantezlerinin içinde, başlık int der çünkü geri gelen değer bir inttir. Parantezler arasında int n hâlâ bir parametredir — önceki sayfadaki aynı fikir. Gövde tek bir deyim tutar: return n * 2;. Bu, ni 2 ile çarpar ve çarpımı twicei çağırana geri gönderir. Bu sayfada twice içinde Console.WriteLine yoktur. Çalıştırmadan önce dosyayı kaydedin. Tam ilk program sonraki kutudadır.
Tutacağınız dosya
Bu, tam küçük programdır. twice hesaplar. Main yazar.
using System;
public class Pine
{
public static void Main()
{
Console.WriteLine(twice(7));
}
static int twice(int n)
{
return n * 2;
}
}
Yukarıdan okuyun. using System; kısa adları hazırlar. public class Pine türü adlandırır. public static void Main() çalışma zamanının başladığı yerdir. twice(7) çağrısı 7yi n içine gönderir. static int twice(int n) return n * 2; tutar. Console.WriteLine geri gelen değeri yazar. Ekranda bir satır: 14.
dotnet run ile çalıştırın. Program bir satır yazar ve durur. Sizin yazmanızı beklemez. dotnet run bekliyorsa dosyada hâlâ ReadLine vardır. O satırı silin ve Console.WriteLine(twice(7)); ile yukarıdaki twice metodunu tutun. Ekran 14 gösterir. Ekran hi lena gösteriyorsa artakalan bir greet çağrısı hâlâ çalışıyordur. Ekran twice harflerini gösteriyorsa yazma satırı o sözcüğü tırnaklamıştır: Console.WriteLine("twice");. Yanlış satır gösteren bir ekran için .NET SDK’yı yeniden kurmazsınız.
Bir tam çalışmayı sırayla yürütün. C# Mainden başlar. twice(7) çağrısı 7yi n içine gönderir. twice içinde return n * 2; 14ü hesaplar ve o 14ü Maine geri verir. Sonra WriteLine 14 yazar. twice kendi başına ekrana hiç yazmadı. Çağrıyı twice(3) yaparsanız ekran 6 göstermelidir. Metot gövdesi aynı kalır; yalnız argüman değişir ve dönen çarpım onunla değişir. Ekran 14 yerine 7 gösteriyorsa twice içinde n yazmışsınızdır ya da Mainde twice çağırmadan argümanı yazmışsınızdır — iki katlamayı return satırına koyun ve çağrının sonucunu yazın.
Önemli ayrım ekranla kimin konuştuğudur. Bu sayfada twice yalnız return yoluyla Main ile konuşur. Main WriteLine yoluyla ekranla konuşur. Bu yüzden başlık artık void diyemez: Mainin yazması için bir şey geri gelmelidir. Sonucu önce result içinde sakladığınızda hâlâ aynı geri vermeyi kullanırsınız; yazmayı yalnızca bir satır ertelersiniz.
Main’in aldığı değeri yazın
Dönen değeri yazmadan önce Main içinde bir ad altında da tutabilirsiniz. Farklı bir ekran satırı istiyorsanız yalnız çağrıdaki sayıyı değiştirin. return n * 2;e dokunmayın.
using System;
public class Pine
{
public static void Main()
{
int result = twice(7);
Console.WriteLine(result);
}
static int twice(int n)
{
return n * 2;
}
}
Bu ikinci dosyadır. Aynı return’ü saklanan bir adla öğretir. dotnet run çalıştırın. Hâlâ bir satır gösterir: 14. Çağrı önce biter ve resultı doldurur. Sonra WriteLine resultı yazar. Her iki biçim — çağrıyı doğrudan yazmak veya saklayıp sonra yazmak — twice içindeki aynı returnü kullanır. twice(0) 0 yazmalıdır. twice(10) 20 yazmalıdır. Her seferinde Main, twicein geri verdiğini yazar. Saklanan biçimi gördükten sonra tutmak istediğiniz şekil tek satırlık çağrıysa tutulan dosyayı geri koyun: Main içinde Console.WriteLine(twice(7));.
twice başlıkta hâlâ void diyorsa ama gövdede return n * 2; varsa derleme bir hata yazar — void hiçbir şeyin geri gelmediği anlamına gelir, bu yüzden değerli bir return uymaz. Başlık int diyorsa ama gövdede return yoksa derleme yine hata yazar — bu başlangıç biçiminde bir int metot bir int geri göndermelidir. Gövde yazıyor ve hiç döndürmüyorsa parametreler sayfasının fikrine dönmüşsünüzdür; bu sayfa sayının Mainin elinde olmasını ister.
void ile tipli bir return
İki biçimi yan yana okuyun. Bir void metot gövdesini çalıştırır ve biter. Tipli return’ü olan bir metot return ile bir değer geri vermelidir. Dönüş tipi void değilse Main çağrıyı o değer olarak işler.
📊 void body versus return
| Shape | What the method does | What Main often does |
|---|---|---|
void show(int n) |
writes inside the body | calls show(9); and may write nothing else |
int twice(int n) |
return n * 2; |
writes or stores twice(7) |
Yaygın bir karışıklık, twice içine Console.WriteLine(n * 2); koyup başlığı return olmadan int bırakmaktır. O zaman derleme şikâyet eder, ya da başlığı voida çevirirsiniz ve Mainin çağrıdan yazacağı bir değeriniz kalmaz. Başka bir karışıklık, başlık int derken değersiz return; yazmaktır. Dönen ifadenin tipi int ile eşleşsin diye return n * 2; tutun. Mainde Console.WriteLine("twice"); yazmak twice sözcüğünü yazar; metodu çağırmaz. Ekranda 14 istiyorsanız Console.WriteLine(twice(7)) tutun.
Metot içinde yalnız hi lena yazan artakalan bir greet demosu aynı dosyada oturup ekranı karıştırabilir. Maini twice kullanan WriteLinee indirin ve dönen tek bir metot tutun. twicei Mainin süslü parantezlerinin içine yuvalamayın. Metotlar sınıfın içinde, Mainin yanında oturur.
static int twice(int n) yazabilir, hesaplanmış bir değeri döndürebilir ve o değeri Mainden yazabilirsiniz. Ekran, metodun kendi yazdığı bir satırı değil, Mainin aldığı sayıyı gösterir. Geri bir değer gerektiğinde void yanlış başlıktır. Sonraki sayfa overloading’dir; parametre listeleri farklıysa birden fazla metot aynı adı paylaşabilir.
Ekran Main’in aldığını tutar
Tutacağınız dosya, Main twice(7) yazdığında 14 yazar. return sözcüğü metot gövdesindedir ve return ekranda basılmış bir etiket olarak çıkmaz. twice etrafındaki tırnaklar harf yazar, çağrı sonucunu değil. twicei Main içine yuvalamak bu dersin kurduğu biçim değildir.
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 Talimatlar
- Her soruyu dikkatle okuyun
- Her soru için en iyi cevabı seçin
- Quiz'i istediğiniz kadar tekrar alabilirsiniz
- İlerlemeniz üstte gösterilecek