28 Ekim 2013 Pazartesi

C# Giriş - Çıkış İşlemleri

Console.WriteLine() : bu komutu daha önceki derslerde sık sık kullandık. Ekrana bilgi gösterme komutudur. bilgiyi ekranda gösterir ve imleci bir alt satıra indirir.
Console.WriteLine("Merhaba Dünya");//Ekrana Merhaba Dünya yazılacaktır.

Console.ReadLine() : bu komut klavyeden değerler okunmasına ve bir değişkene değer atamak için kullanılır.
   Console.Write("Bir mesaj giriniz:");
string s = Console.ReadLine();
Console.WriteLine(s);
C# programında klavyede bir veri girildiği zaman program bunu string olarak alır. Bunun için string bir ifade girildiği zaman dönüştürmeye gerek yoktur. Ama string dışında bir veri girildiği zaman mutlaka o veri tipine dönüştürmek gerekiyor.
string s = Console.ReadLine();
bu örneğimizde dönüşüm yapmadan s değişkenine direkt olarak değer atıyoruz.
int x = Convert.ToInt32(Console.ReadLine());// x int'e dönüştürüldü.
Bu örneğimizde ise Console.ReadLine() ile klavyeden değer giriyoruz. Convert.ToInt32 ile de klavyeden girilen değerin int veri tipine dönüştürüyoruz. Dönüştürmek anlamına  gelen Convert burada anahtar kelimedir.To.Int32 ise dönüşüm yapılacağı veri tipini gösteriyor.
Şimdi bunları basit bir örnek üzerinde görelim.
static void Main(string[] args)
{
// Klavyeden girilen iki tane değerin toplamını yapan ekranda gösteren program
int x, y;
Console.Write("1. sayıyı giriniz:");
x = Convert.ToInt32(Console.ReadLine());
Console.Write("2. sayıyı giriniz:");
y = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("x+y="+ (x + y));
Console.ReadKey();
}

Çıktısı:
1. sayıyı giriniz:5
2. sayıyı giriniz:7
x+y=12

Örneği inceleyelim.
int x, y;
int veri tipinde x ve y diye iki değişken tanımlıyoruz. 
Console.Write("1. sayıyı giriniz:")
Bu kodumuzla ekranda mesajı gösteriyoruz.

x = Convert.ToInt32(Console.ReadLine());

Bu kodla Console.ReadLine() ile klavyeden değer girilmesini sağlıyor, Convert.ToInt32 ile int veri tipine dönüştürüyor ve = ile girilen değeri x değişkenine atama yapıyor.
Console.Write("2. sayıyı giriniz:");
Bu kodumuzla ekranda mesajı gösteriyoruz.
y = Convert.ToInt32(Console.ReadLine());

Bu kodla Console.ReadLine() ile klavyeden değer girilmesini sağlıyor, Convert.ToInt32 ile int veri tipine dönüştürüyor ve = ile girilen değeri y değişkenine atama yapıyor.
Console.WriteLine("x+y="+ (x + y));

+ operatörünün birleştirme ve toplama işlemlerini yaptığını operatörler konusunda anlatmıştık. İşte bu kodda (x+y) ile toplama işlemi, diğer + operatörü toplam değeri ile açıklamayı birleştiriyor. Açıklama ifadeleri “…” (çift tırnak) içine yazılır. Değişkenler ise “…” içine yazılmaz.
Console.ReadKey();
İşlemi ekranda gösterdikten sonra bir tuşa basılmasını bekler. Ctrl+f5 ile aynı işlevi görür.

{0} ifadesi: Bilgileri istenilen bir şekilde ekranda göstermek için {0} ifadesini de kullanılabilir. Virgülden sonra tanımlanan ilk değişken değeri {0} yerine yazılır. Bu örnek üzerinde daha iyi anlaşılacaktır. Yukarıda ki örneği alıp biraz değiştirelim.
static void Main(string[] args)
{
// Klavyeden girilen iki tane değerin toplamını yapan ekranda gösteren program
int x, y;
Console.Write("1. sayıyı giriniz:");
x = Convert.ToInt32(Console.ReadLine());
Console.Write("2. sayıyı giriniz:");
y = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("{0}+{1}={2}",x,y,(x + y));
Console.ReadKey();
}
Çıktısı:
1. sayıyı giriniz:5
2. sayıyı giriniz:7
5+7=12

Yukarıdaki örnekle aynı işlemi yapıyor. Sadece sonucu gösterme şekli farklı. Bu kullanım biraz daha kullanışlı diyebiliriz.

Örnekteki şu kodu inceleyelim. Diğerleri aynı çünkü.
Console.WriteLine("{0}+{1}={2}",x,y,(x + y));

Birinci virgülden sonra x değerini {0} yerine yazdı. İkinci virgülden sonraki y değerini {1} yerine yazdı. Üçüncü virgülden sonraki (x+y) değerini {2} yerine yazdı. Bu şekilde aynı anda birden fazla değişken ekrana yazdırılmak isteniyorsa {0},{1},{2}… şeklinde devam eder. Değişkenler virgülle ayrılarak tanımlanır.
Konunun mantığını kavradıktan sonra işlemler çok kolay oluyor. Bakın aynı işlemi yapan farklı iki kod göstereyim.
Console.WriteLine("{0}+{1}={2}", x, y,(x + y));

Ve
Console.WriteLine(x+"+"+y+"="+(x+y));
Aradaki farkı siz bulun. Aynı işlemi yapıyorlar. Ama gidiş yolu farklı.

Hiç yorum yok:

Yorum Gönder