Operatörler
kaynak: http://mcansozeri.wordpress.com/category/yazilim/
Önceden tanımlanmış birtakım matematiksel ya da mantıksal işlemleri yapmak için kullanılan özel karakter ya da karakterler topluluğudur. Operatörler gerekli işleri yapmaları için bir takım malzemeye ihtiyaç duyarlar. Örneğin + operatörünün toplama yapabilmesi için iki tane sayıya ihtiyacı vardır. Bu sayılara operand denilmektedir. Aynı şekilde ++ operatörü bir operanda ihtiyaç duymaktadır. Görüşdüğü gibi her operatörün farklı sayıda operandı bulunmaktadır. Örnek verelim;
- a+b → Burda operatör +, operandlar ise a ve b’dir.
- ++c → Burda operatör ++, operand ise c’dir.
Yapılarına göre operatörleri 3 gruba ayırabiliriz. Bunlar:
- Unary Operatörler: Tek operandı olan operatörler.
- Binary Operatörler: İki operandı olan operatörler.
- Tenary Operatörler: Üç operandı olan operatörler.
İşlevlerine göre operatörleri 6 saınıfa ayırabiliriz. Bunlar:
- Aritmetik Operatörler (Arithmatic Operators): Toplama ve çıkarma gibi temel işlemleri yapan operatörlerdir.
- Karşılaştırma Operatörleri (Comparison Operators): İki sayı arasındaki büyüklük ve küçüklüğ gibi ilişkileri kontrol eder.
- Mantıksal Operatörler (Logical Operators): Mantıksal işlemleri gerçekleştirirler.
- Bitsel Operatörler (Bitwise Operators): Değişkenlere ilişkin değerlerin bitleri ile ilgili işlemler yaparlar.
- Atama ve İşlemli Atama Operatörleri (Assignment Operators): Bir değişkene değer atamak için kullanılırlar.
- Özel Amaçlı Operatörler (Special Case Operators): Bu gruptaki operatörlerin genel bir amacı yoktur. Her biri farklı amaçlar için kullanılmaktadır.
Operatör Önceliği
Konuyu çok fazla uzatmak istemiyorum. Çünkü kitaplarda ve internet üzerindeki makalelerde çok uzun yazıyor.
c=3+5*9; c=48dir. (3+5)*9 olsa 72 olacaktı. Öncelik normal hayattaki matematikte ve yazılımda bildiğimiz gibi çarpmadadır.
Ama çarpma ve bölme ile toplama ve çıkarmanın öncelikleri eşittir.
Peki c=3*4/2; bu durumda olacak? İşlem öncelikleri eşit. C# otomatik olarak Soldan işlem yaparak Sağa doğru yapacaktır. Yani önce 3*4 sonra 12/2.
c=(3+5)*9; c=72dir. İşlemler parantezden başlar. Eğer iç içe 2 veya daha fazla parantez varsa en içtekinden başlanarak işlem yapılır.
Yazımın devamında birinci yazıda geçtiğimiz başlıkları ayrıntılı olarak göreceğiz. Tablodaki her birini tek tek ele alacağım.
C# Operatör Tablosu
Bu tabloyu ezberlemek zorunda değilsiniz. Program yazarken bir referans olarak bu tabloyu kullanabilirsiniz.
% Operatörü
İki operand almaktadır. Sonuç birinci operandın ikinci operanda bölümünden elde edilen kalandır. m=20%5 → m=0; c=10 % 3 → c=1 a=-7 % 4 → a=-3 n=2.5 % 1.2 → n=0.1
++ (Artırma) ve — (Eksiltme) Operatörleri
|
sonek++ |
a=4 |
b=a++ |
a → 5 |
|
sonek– |
a=4 |
b=a– |
a → 3 |
|
++önek |
a=4 |
b=++a |
a → 5 |
|
–önek |
a=4 |
b=–a |
a → 3 |
Karşılaştırma Operatörleri
> ve < Operatörleri
Bu operatör iki sayının birbirlerine göre büyüklüğünü ve küçüklüğünü kontrol eder.
Aşağıdaki örnekte e
krana false yazdığını görebiliiriz.
bool b1 = 60 < 50;
>= ve <= Operatörleri
İki örneğinde sonucu true dur.
bool b1 = 50 <= 50;
bool b2=50>=45;
== ve != Operatörleri
bool b1= 60 == 50; → false
bool b2= 60 == 60;
→ true
bool b3= 60 != 50; → true
bool b4 = 60 !=60; → false
is Operatörü
is operatörü çalışma zamanında bir nesnenin türünün operand ile verilen türe uygun olup olmadığını kontrol eder. Kullanımı ve örneği aşağıdaki gibidir;
<ifade> is <tür>
int i=15;
bool b1= i is int; //Sonuç true.
Mantıksal Operatörler
&& (Mantıksal VE) Operatörü
Mantıksal VE işleminin her iki operanda göre ürettiği değerler aşağıda tablo halinde verilmiştir.
|
1.Operand |
2.Operand |
Sonuç |
|
True |
True |
True |
|
True |
False |
False |
|
False |
True |
False |
|
False |
False |
False |
Aşağıda bazı mantıksal Ve işlemleri ve sonuçları görülmektedir.
- bool b1=35<10 && 10==50; b1 → false
- bool b2=35>10 && 10!=50 ; b2 → true
- bool b3=14.6f>10f && 0!=100; b3 → true
|| (Mantıksal VEYA) Operatörü
Mantıksal VEYA işleminin her iki operanda göre ürettiği değerler aşağıda tablo halinde verilmiştir.
|
1.Operand |
2.Operand |
Sonuç |
|
True |
True |
True |
|
True |
False |
True |
|
False |
True |
True |
|
False |
False |
False |
Aşağıda bazı mantıksal VEYA işlemler ve sonuçları görüşmektedir.
- bool b1=35<10 || 10==50; b1 → false
- bool b2=35>10 || 10!=50; b2 → true
- bool b3=14.6f>10f || 0!=00; b3 → true
! (Mantıksal Değil) Operatörü (NOT)
Eğer operand true ise ! operatörünün üreteceği değer false, operand false ise ! operatörünün üreteceği değer true’dur.
- bool b1=!(35>10); b1 → false
- bool b2=!(10==50); b2 → true
Bitsel Operatörler (Buraya daha sonra değiceğim yazacağım kodlarda)
Atama ve İşlemli Atama Operatörleri
=(Atama) Operatörü
Bir değişkene herhangi bir değer atamak için kullanılır. Aşina olduğumuz bir operatör. Bilmeniz gereken en önemli nokta = operatörünün atama işlemini yaptığı değeri üretmesidir. Aşağıdaki ifade bu yüzden geçersizdir.
byte b=7, a=1, c;
(c=a)=b; //Hatalıdır çünkü sonuç 1=b olacaktır buda yanlıştır.
İşlemli Atama Operatörleri
*=, /=, +=, -=, &=, ^=, |= gibi operatörler işlemli atama operatörleridir. Kullanımı;
a=a+b; yerine a+=b;
a=a/b; yerine a/=b;
a=a^b; yerine a^=b;
ifadelerini kullanabiliriz.
Özel Amaçlı Operatörler
?: Operatörü (Tenary Operator)
Bu operatör C#’ta 3 operand alan tek operatördür. Daha sonra yazacağım if-else yapı bloklarının yaptığı işe benzer bir iş yapmaktadır. “koşul ? doğru_değer : yanlış değer”
protected void btnYaz_Click(object sender, EventArgs e)
{
int sayi;Convert.ToInt32( txtveri.Text);
string str = “kalem”;
str = str + (sayi == 1 ? ” ” : “ler”);
this.Page.Response.Write(str);
}
kaynak: http://mcansozeri.wordpress.com/category/yazilim/
video: http://haber.aku.edu.tr/~bgokce/CSharp/Ders2_2Operatorler.swf


Son Yorumlar