Operatörler,matematiksel yada mantıksal hesapların yapılması, değişik çalışma deyimlerinin
hazırlanması için vardır. C# operatörler konusunda en güçlü dillerden biridir. Tüm istekleri
karşılayabilecek kadar operatöre sahiptir.
C# içerisinde Operatörler 3 grup altında incelenebilir.
1 – Matematiksel
2 – İlişkisel
3 – Mantıksal
1-Matematiksel Operatörler
Toplama +
Çıkartma -
Çarpma *
Bölme /
Modülüs %
Bu Operatörler Matematik’de nasıl çalışıyorsa, C# içinde’de aynı şekilde çalışır. Fakat
dikkat edilmesi husus bölme işlemleri, eğer bir bölme işleminin sonucunu tam sayı
değişkenlerine(int,byte,long gibi) atarsanız, ve sonuç küsürlü bir çekilde oluşursa,
noktadan sonraki kısım atılır ve sonuç tam sayi şekline dönüştürülür.
int sayi1 = 5;
int sayi2 = 2;
int cevap = sayi1 / sayi2;
Console.WriteLine(”Sonuc : {0}”, cevap);
Sonucun 2 çıkması C#’in matematiksel işlemlerde kısıtılı olduğunu göstermez. Bölme işleminin
sonucu 2.5 tur. Ancak sonucun atandığı değişken tam sayı tipinde olduğu için sonucun küsüratlı
kısmı atılır ve sonuç 2 olarak görüntülenir. Biz bölme işlemleri sırasında sizlere decimal veri tipini
tavsiye ederiz. Zaten Genel kural’da budur. Aynı işlemleri decimal kullanarak siz yaparsanız sonucun
2.5 çıkacağını görüceksiniz.
Aşağıdaki açık tip dönüşümü ile gelen veriyi decimal tipine dönüştürerek bölme işlemi yapılmıştır.
using System;
using System.Collections.Generic;
using System.Text;namespace Deneme
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(”İlk Sayiyi Girin”);
decimal sayi1 = Convert.ToDecimal(Console.ReadLine());
Console.WriteLine(”İkinci Sayiyi Girin”);
decimal sayi2 = Convert.ToDecimal(Console.ReadLine());
decimal cevap = sayi1 / sayi2;
Console.WriteLine(cevap);
}
}
}
Convert.ToDecimal() metodu ile gelen veriyi decimal tipine dönüştürür.
Modulüs
Modülüs operatörü bir bölme işleminde kalan sonucu verir. 10 sayisini 3′e böldüğünüzde
kalan 1′dir. Modülüs bir çok alanda kullanılabilir. Aşağıdaki örneği İnceleyelim.
using System;
using System.Collections.Generic;
using System.Text;namespace Deneme
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(”Bir Sayı Girin”);
long number = Convert.ToInt64(Console.ReadLine());
if ((number % 2) == 0)
{
Console.WriteLine(”Girdiğiniz Sayı Çiftdir”);
}
else
{
Console.WriteLine(”Girdiğiniz Sayı Tektir”);
}
Console.ReadLine();
}
}
}
Yukardaki örnekte kullanıcıdan bir sayı girmesi istenmiştir ve eger sayi 2 ye bölünebiliyorsa
sayinin çift olduğunu anlıyoruz. Girilen verinin Convert.ToInt64() metoduyla long tipine nasıl
dönüştürüldüğüne dikkat edin. Modülüs operatörü özellikle kriptoloji yöntemlerinde kullanılır.
2-İlişkisel Operatörler
İlişkisel Operatörler iki değer arasındaki ilişkiyi anlamak veya belirlemek için kullanılır. Bu
Operatörlere ait tam liste asağıdadır.
== Eşittir.
!= Eşit Değildir.
> Büyüktür.
< Küçüktür.
>= Büyük Eşittir.
<= Küçük Eşittir.
İlişkisel Operatörler genellikle program kontrol ifadelerinde kullanılır. Operatörün sağındaki
değer ile solundaki değer birbiri ile operatöre göre karşılaştırılır ve geçerli işlem yapılır. Bu
karşılastırma işleminin sonucu bool tipindedir. Asağıdaki ifadeyi kontrol edin.
if(sayi1 == sayi2)
sayi1 değerinin sayi2 değeriyle birbirine eşit olup olmadığı kontrol edilir ve eğer iki değer birbirine
eşitse sonuc dogru(true) eşit değilse yalnış(false)tur.
using System;
using System.Collections.Generic;
using System.Text;namespace Deneme
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(”Bir Sayi Girin”);
long number = Convert.ToInt64(Console.ReadLine());
if (number > 5)
{
Console.WriteLine(”Girdiginiz sayi 5′ten Büyüktür.”);
}
else if (number < 5)
{
Console.WriteLine(”Girdiginiz sayi 5′ten Kücüktür.”);
}
else
{
Console.WriteLine(”Girdiginiz Sayi 5′tir”);
}
}
}
}
Yukardaki örnekte konsol’dan girilen sayının 5′e eşit, 5′ten büyük veya küçük olması
durumları işlenmistir. Karşılaştırma operatörlerini bir sonraki yazılarımızda sıklıkla göreceğiz.
3-Mantıksal Operatörler
& (Ve) operatörünü ele alalım. Bu Operatör her iki operandın değerlerini alır ve her iki operand
da doğru olmadığı sürece yalnış sonucunu üretir. Doğru sonucunu vermesi için her iki operandın
doğru olması gerekir. Örn: (yalnıs & yalnıs = yalnıs , yalnıs & dogru = yalnıs , dogru & dogru = dogru)
| (Veya) operatörü herhangi birinin doğru olması, doğru sonucunu üretmek için yeterlidir. Sadece
ve sadece iki operandın yalnış olması halinde sonuç yalnıştır. Örn: (yalnıs | dogru => dogru)
^ (XOR) opreratörü ise iki operandan herhangi biri farklı ise doğru sonucunu üretir. İki operand da
aynı değere sahip ise sonuç yalnıştır. Örn: (yalnıs ^ dogru => dogru) İki operand da birbirinden farklıdır.
| (Degil) operatörü ise tek operand ile birlikte çalışır. Operanda ait değerin tersini alır. Operand yalnış
ise doğru, doğru ise yalnış sonucunu üretir.
&& (Kosullu Ve) ve || (Kosullu Veya) operatörlerinin normal & ve | operatörlerinden tek farkı normal
operatörlerin her iki operandı da önermeye dahil etmesiyken, koşullu operatörlerin sadece gerektiğinde
ikinci operanda bakmasıdır.
Aşağıdaki kod parçasını inceleyin.
int number = 0;
int itemcount = 5;
if((number == 1) && (itemcount != 5))
{
Console.WriteLine(”…”); //bu satır çalışmayacak
}
if satırında önce number değerinin 1 olup olmadığı kontrol ediliyor. number deperi 1 olmadıpı icin koşul
saplanmıyor ve ikinci değer(itemcount) bakmaya gerek kalmadan ifade yalnış olarak değerlendiriliyor.
Eğer aynı satırı normal ve(&) olarak yazmış olsaydık, ikinci operand olan (itemcount =!5) ifadesine de
bakılıp ondan sonra doğru yalnış değerlendirmesi yapılacaktı. Mantıksal operatörleri ilerleyen bölümlerin
tamamında kullanacağız. Mantıksal operatörler olmadan herhangi bir program yazmak mümkün değildir.