C# Console.WriteLine, Console.Write ve Console.ReadLine Kullanımı
C# programlama dilinde konsol uygulamaları, programlamanın temel kavramlarını öğrenmek için kullanılan en kolay uygulama türlerinden biridir. Konsol uygulamalarında ekrana bilgi yazdırmak ve kullanıcıdan veri almak için Console.WriteLine(), Console.Write() ve Console.ReadLine() metotları kullanılır.
Bu makalede C# konsol uygulamalarında ekrana yazı yazdırma, kullanıcıdan veri alma, değişkenlerle çalışma ve alınan metinsel verileri sayıya dönüştürme işlemlerini örneklerle öğreneceğiz.
1. C# Console Nedir?
Console, konsol penceresinde giriş ve çıkış işlemleri yapmak için kullanılan System ad alanındaki bir sınıftır. Konsol uygulamalarında genellikle kullanıcıyla metin üzerinden iletişim kurulur.
Örneğin program ekrana bir soru yazabilir, kullanıcı klavyeden cevap verebilir ve program bu cevaba göre işlem yapabilir.
2. Console.WriteLine() Nedir?
Console.WriteLine(), konsol ekranına metin veya değer yazdırır ve yazdırma işleminin ardından imleci bir sonraki satıra geçirir.
Örnek 1: Ekrana yazı yazdırma
Console.WriteLine("Merhaba Dünya!");
Console.WriteLine("C# öğreniyorum.");
Console.WriteLine("Nesne Tabanlı Programlama");
Ekran çıktısı:
Merhaba Dünya!
C# öğreniyorum.
Nesne Tabanlı Programlama
Her WriteLine() komutu tamamlandığında bir alt satıra geçilir. Çift tırnak içindeki ifadeler metin (string) olarak değerlendirilir.
3. Console.Write() Nedir?
Console.Write(), ekrana yazı yazdırır ancak işlem sonunda otomatik olarak alt satıra geçmez. Sonraki çıktı aynı satırdan devam eder.
Örnek 2: Write ve WriteLine farkı
Console.Write("Adınız: ");
Console.WriteLine("Ayşe");
Console.Write("Yaşınız: ");
Console.WriteLine(16);
Ekran çıktısı:
Adınız: Ayşe
Yaşınız: 16
Örnekte Write() kullanıldığı için isim ve yaş bilgileri aynı satırda görüntülenir. WriteLine() ise satırı tamamlayarak bir alt satıra geçer.
| Metot |
Görevi |
Alt satıra geçer mi? |
| Console.Write() |
Ekrana veri yazdırır. |
Hayır |
| Console.WriteLine() |
Ekrana veri yazdırır. |
Evet |
4. Console.ReadLine() Nedir?
Console.ReadLine(), kullanıcının klavyeden bir satır veri girmesini bekler. Kullanıcı Enter tuşuna bastığında girilen metni okur. Okunan değer normal koşullarda string türündedir.
Örnek 3: Kullanıcının adını öğrenme
Console.Write("Adınızı giriniz: ");
string ad = Console.ReadLine();
Console.WriteLine("Merhaba " + ad);
Örnek ekran çıktısı:
Adınızı giriniz: Mehmet
Merhaba Mehmet
İlk satırda kullanıcıdan adı istenir. İkinci satırda klavyeden girilen değer ad değişkenine aktarılır. Son satırda değişkenin değeri ekrana yazdırılır.
5. ReadLine() ile Birden Fazla Bilgi Alma
Bir programda kullanıcıdan birden fazla bilgi alınabilir. Her bilgi uygun bir değişkende saklanır.
Örnek 4: Öğrenci bilgileri
Console.Write("Adınız: ");
string ad = Console.ReadLine();
Console.Write("Soyadınız: ");
string soyad = Console.ReadLine();
Console.Write("Sınıfınız: ");
string sinif = Console.ReadLine();
Console.WriteLine("--- Öğrenci Bilgileri ---");
Console.WriteLine("Ad Soyad: " + ad + " " + soyad);
Console.WriteLine("Sınıf: " + sinif);
Örnek ekran çıktısı:
Adınız: Zeynep
Soyadınız: Yılmaz
Sınıfınız: 10/A
--- Öğrenci Bilgileri ---
Ad Soyad: Zeynep Yılmaz
Sınıf: 10/A
6. Console.ReadLine() ile Sayı Alma
Önemli: Console.ReadLine() kullanıcıdan aldığı değeri metin olarak okur. Kullanıcı 25 yazsa bile bu değer doğrudan int türünde değildir. Sayısal işlem yapabilmek için tür dönüşümü gerekir.
Örnek 5: Convert.ToInt32() ile yaş alma
Console.Write("Yaşınızı giriniz: ");
int yas = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Gelecek yıl yaşınız: " + (yas + 1));
Örnek ekran çıktısı:
Yaşınızı giriniz: 16
Gelecek yıl yaşınız: 17
Convert.ToInt32(), uygun bir metinsel değeri tam sayıya dönüştürür. Kullanıcı sayı yerine harf girerse dönüşüm hatası oluşabilir.
7. int.Parse() ile Sayıya Dönüştürme
int.Parse() da metin biçimindeki uygun bir tam sayıyı int türüne dönüştürür.
Örnek 6: İki sayıyı toplama
Console.Write("Birinci sayıyı giriniz: ");
int sayi1 = int.Parse(Console.ReadLine());
Console.Write("İkinci sayıyı giriniz: ");
int sayi2 = int.Parse(Console.ReadLine());
int toplam = sayi1 + sayi2;
Console.WriteLine("Toplam: " + toplam);
Örnek ekran çıktısı:
Birinci sayıyı giriniz: 12
İkinci sayıyı giriniz: 8
Toplam: 20
Burada iki sayı int.Parse() kullanılarak tam sayıya çevrilir. Ardından toplama işlemi gerçekleştirilir.
8. int.TryParse() ile Hatalı Girişleri Kontrol Etme
Kullanıcıdan her zaman doğru veri gelmeyebilir. int.TryParse(), girilen metnin tam sayıya dönüştürülüp dönüştürülemediğini kontrol eder. Başarılıysa true, başarısızsa false sonucu verir.
Örnek 7: Güvenli sayı girişi
Console.Write("Bir tam sayı giriniz: ");
string giris = Console.ReadLine();
int sayi;
if (int.TryParse(giris, out sayi))
{
Console.WriteLine("Girdiğiniz sayı: " + sayi);
}
else
{
Console.WriteLine("Hatalı giriş! Lütfen tam sayı giriniz.");
}
Örnek ekran çıktısı:
Bir tam sayı giriniz: abc
Hatalı giriş! Lütfen tam sayı giriniz.
Bu yöntem, kullanıcı yanlış veri girdiğinde programın beklenmedik şekilde sonlanmasını önlemeye yardımcı olur.
9. Değişkenleri WriteLine() ile Yazdırma
Değişkenlerin değerleri metinlerle birleştirilerek veya string interpolation yöntemiyle ekrana yazdırılabilir.
Örnek 8: Farklı yazdırma yöntemleri
string ad = "Ali";
int yas = 17;
Console.WriteLine("Ad: " + ad + ", Yaş: " + yas);
Console.WriteLine($"Ad: {ad}, Yaş: {yas}");
Ekran çıktısı:
Ad: Ali, Yaş: 17
Ad: Ali, Yaş: 17
İlk yöntemde + işaretiyle metinler birleştirilir. İkinci yöntemde $ işaretiyle başlayan metin içinde değişkenler süslü parantezlerle kullanılır.
10. Uygulama: Kullanıcının Not Ortalamasını Hesaplama
Bu örnekte kullanıcıdan iki sınav notu alınacak, notların aritmetik ortalaması hesaplanacak ve ekrana yazdırılacaktır.
Console.Write("1. sınav notunu giriniz: ");
int not1 = Convert.ToInt32(Console.ReadLine());
Console.Write("2. sınav notunu giriniz: ");
int not2 = Convert.ToInt32(Console.ReadLine());
double ortalama = (not1 + not2) / 2.0;
Console.WriteLine("Not ortalamanız: " + ortalama);
if (ortalama >= 50)
{
Console.WriteLine("Dersten geçtiniz.");
}
else
{
Console.WriteLine("Dersten kaldınız.");
}
Örnek ekran çıktısı:
1. sınav notunu giriniz: 70
2. sınav notunu giriniz: 80
Not ortalamanız: 75
Dersten geçtiniz.
Bu uygulamada Write() kullanıcıya soru sormak, ReadLine() veri almak, Convert.ToInt32() verileri sayıya dönüştürmek ve WriteLine() sonucu ekrana yazdırmak için kullanılmıştır. Bölme işleminde 2.0 kullanılması ondalıklı ortalamanın korunmasını sağlar.
11. Sık Yapılan Hatalar
- Write() ile WriteLine() karıştırılması: Write() otomatik olarak alt satıra geçmez.
- ReadLine() sonucunun doğrudan int değişkenine atanması: Metinsel değerin uygun biçimde dönüştürülmesi gerekir.
- Yanlış veri girilmesi: int.Parse() ve Convert.ToInt32() geçersiz metinlerde hata oluşturabilir.
- Toplama yerine metin birleştirme: İki string değer + ile birleştirildiğinde matematiksel toplama yapılmaz.
- Enter tuşunun unutulması: ReadLine() genellikle kullanıcı Enter'a basıncaya kadar bekler.
12. Console.WriteLine(), Console.Write() ve Console.ReadLine() Özet
C# konsol uygulamalarında Console.Write() ekrana veri yazdırır ve aynı satırda kalır. Console.WriteLine() veriyi yazdırdıktan sonra alt satıra geçer. Console.ReadLine() ise kullanıcıdan klavye aracılığıyla bir satır metin alır.
Bu üç metot; değişkenler, veri türleri, koşullar ve döngülerle birlikte kullanıldığında kullanıcıyla etkileşim kuran pek çok temel C# uygulamasının geliştirilmesini sağlar.
Öğrenciler için uygulama: Kullanıcıdan adını, doğum yılını ve sevdiği dersi alan; bu bilgileri düzenli biçimde ekrana yazdıran bir konsol programı hazırlayınız.