"Enter"a basıp içeriğe geçin

C# Konsoldan Veri Alma

Merhaba arkadaşlar, bu yazımda C# konsoldan veri alma konusunu anlatacağım. Konsoldan veri alma, kullanıcıdan klavye yoluyla bilgi girmesini sağlayan bir işlemdir. Bu işlem sayesinde programlarımızı daha etkileşimli ve dinamik hale getirebiliriz.

Konsoldan veri almak için C# dilinde Console sınıfının ReadLine() metodu kullanılır. Bu metot, kullanıcı bir satır sonu karakteri (Enter tuşu) girene kadar bekler ve girilen metni bir string olarak döndürür. Örneğin, kullanıcıdan ismini almak istiyorsak şöyle bir kod yazabiliriz:


Console.Write("Adınız: "); // Kullanıcıya bir mesaj yaz
string isim = Console.ReadLine(); // Kullanıcıdan veri al ve isim değişkenine ata
Console.WriteLine("Merhaba " + isim); // Kullanıcıya selam ver

Bu kodu çalıştırdığımızda konsol ekranında şöyle bir çıktı alırız:

Adınız: Ahmet
Merhaba Ahmet

Gördüğünüz gibi, ReadLine() metodu ile kullanıcıdan aldığımız veriyi bir değişkene atayarak istediğimiz şekilde kullanabiliyoruz. Ancak burada dikkat etmemiz gereken bir nokta var: ReadLine() metodu her zaman bir string döndürür. Yani kullanıcıdan sayısal bir veri almak istesek bile, bu veriyi string olarak alırız. Bu durumda, sayısal işlemler yapabilmek için bu string’i sayısal bir tipe dönüştürmemiz gerekir.

C# dilinde string’i sayısal bir tipe dönüştürmek için çeşitli yöntemler vardır. Bunlardan en yaygın olanları int.Parse(), double.Parse(), Convert.ToInt32(), Convert.ToDouble() gibi metotlardır. Bu metotlar, string’i ilgili tipe dönüştürmeye çalışır ve başarılı olursa dönüştürülen değeri döndürür. Eğer dönüştürme başarısız olursa, FormatException adında bir hata fırlatır. Örneğin, kullanıcıdan yaşını almak istiyorsak şöyle bir kod yazabiliriz:

Console.Write("Yaşınız: "); // Kullanıcıya bir mesaj yaz
string yasStr = Console.ReadLine(); // Kullanıcıdan veri al ve yasStr değişkenine ata
int yas = int.Parse(yasStr); // yasStr'i int tipe dönüştür ve yas değişkenine ata
Console.WriteLine("Yaşınız: " + yas); // Kullanıcıya yaşını yaz

Yaşınız: 25
Yaşınız: 25

Ancak eğer kullanıcı sayısal olmayan bir değer girerse, örneğin “yirmi beş” gibi, bu kod hata verecektir. Bu durumu önlemek için try-catch blokları kullanabiliriz. Bu bloklar, try bloğunda hata oluşursa catch bloğunda yakalanmasını sağlar. Örneğin:

Console.Write("Yaşınız: "); // Kullanıcıya bir mesaj yaz
string yasStr = Console.ReadLine(); // Kullanıcıdan veri al ve yasStr değişkenine ata
try
{
int yas = int.Parse(yasStr); // yasStr'i int tipe dönüştür ve yas değişkenine ata
Console.WriteLine("Yaşınız: " + yas); // Kullanıcıya yaşını yaz
}
catch (FormatException)
{
Console.WriteLine("Lütfen sayısal bir değer giriniz."); // Hata mesajı yaz
}

Bu kodu çalıştırdığımızda konsol ekranında şöyle bir çıktı alırız:

Yaşınız: yirmi beş
Lütfen sayısal bir değer giriniz.

Bu şekilde, kullanıcıdan aldığımız verileri istediğimiz tipe dönüştürerek kullanabiliriz. Ancak, bu dönüştürme işlemleri bazen başarılı olsa bile, beklenmedik sonuçlar verebilir. Örneğin, kullanıcıdan aldığımız bir ondalıklı sayıyı int tipe dönüştürürsek, ondalık kısmı kaybederiz. Ya da kullanıcıdan aldığımız bir string’i bool tipe dönüştürürsek, sadece “True” veya “False” değerleri doğru olarak kabul edilir. Bu nedenle, dönüştürme işlemlerini yaparken dikkatli olmalıyız.

Soru ve görüşlerinizi yorum kısmında paylaşabilirsiniz. Bir sonraki konuda görüşmek üzere.

C# ile ilgili diğer yazılarım için: C# – Bizneyapiyoruzki

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.