Toplama, çıkarma, çarpma, atama, mantıksal işlemler vb şeyleri yapabilmemiz için kullandığımız sembollere operatör diyoruz. Biz bu yazımızda bazı temel operatörleri işleyeceğiz.
Aritmetik operatörler
İki sayıyı toplama, çıkarma, mod alma gibi işlemleri yapar. İşlenen iki değerin sayı olmasına gerek yoktur.
#include <iostream>
using namespace std;
int main() {
int t1{}, t2{};
t1 = 5;
t2 = 7;
cout << "t1+t2: " << (t1 + t2) << endl;
cout << "t1-t2: " << (t1 - t2) << endl;
cout << "t1*t2: " << (t1 * t2) << endl;
cout << "t1/t2: " << (t1 / t2) << endl;
cout << "t1%t2: " << (t1 % t2) << endl;
cout << "t2%t1: " << (t2 % t1) << endl;
}
t1+t2: 12
t1-t2: -2
t1*t2: 35
t1/t2: 0
t1%t2: 5
t2%t1: 2
% işaretiyle mod alınır. Mod alma işlemini bilmiyorsanız: https://tr.wikipedia.org/wiki/Modulo_i%C5%9Flemi#:~:text=Modulo%20i%C5%9Flemi%2C%20hesaplamada%20bir%20say%C4%B1n%C4%B1n,arta%20kalan%20say%C4%B1%20olarak%20d%C3%BC%C5%9F%C3%BCn%C3%BClebilir.
Atama Operatörleri
= işaretiyle atama yaparız. Atama operatörünü matematikteki = işaretiyle karıştırmamak gerekli. Matematikte = işareti sağ taraftaki değer ile sol taraftaki değerin birbirine eşit olduğu anlamına gelir. C++ daki = işareti ise sağ tarafta ne değer varsa onu sol taraftaki değişkenin içine yaz.
#include <iostream>
using namespace std;
int main() {
int a{};
cout << a;//0
a = 5;
cout << a;//5
a = 7 + 2;
cout << a;//9
}
Atama operatörünün çeşitleri vardır. Bu çeşitler aslında pratiklik olması için yapılmış şeylerdir. Normalde a = a + 5; yazmak yerine a+=5; yazıyoruz.
#include <iostream>
using namespace std;
int main() {
int a{}; // 0
a += 5; //a = a + 5; -> 5
a *= 5; //a = a * 5; -> 25
a -= 5; //a = a - 5; -> 20
a /= 5; //a = a / 5; -> 4
a %= 5; //a = a % 5; -> 4
}
Increment & Decrement
Program yazarken sıklıkla karşılacağınız bir işlem bir sayıyı 1 artırmak veya 1 azaltmaktır.
Sayımızı 1 artırmak için sonuna ++ ekliyoruz.
int a{}; // 0
a++; // 1
a++; // 2
a++; // 3
a++; // 4
Aynı şekilde 1 azaltmak için – – ekliyoruz
int a{}; // 0
a--; // -1
a--; // -2
a--; // -3
a--; // -4
Aynı işlemlerin benzerini şu şekildede yapabiliriz
++a;
--a;
Baş tarafına koyduğumuzda buna “pre-increment / pre-decrement” diyoruz. Sonuna koyduğumuzda “post-increment / post-decrement” diyoruz.
Peki bu ikisinin farkı nedir?
Pre-increment and pre-decrement operators increments or decrements the value of the object and returns a reference to the result.
Post-increment and post-decrement creates a copy of the object, increments or decrements the value of the object and returns the copy from before the increment or decrement.
önüne koyduğumuzda hemen değeri artırıyor veya azaltıyor.
Sonuna koyduğumuzda ise o sayının bir kopyasını oluşturuyor. Sonra sayının aslını 1 artırıyor. Sonra geriye artış/azalış’dan önce kopyaladığı değeri dönüyor.
Aşağıdaki kodları inceleyerek farkı daha iyi anlayabilirsiniz.
#include <iostream>
using namespace std;
int main() {
int a{}; // 0
int b{}; // 0
b = a++; // b -> 0 <-> a -> 1
b = a++; // b -> 1 <-> a -> 2
b = a++; // b -> 2 <-> a -> 3
b = a++; // b -> 3 <-> a -> 4
}
#include <iostream>
using namespace std;
int main() {
int a{}; // 0
int b{}; // 0
b = ++a; // b -> 1 <-> a -> 1
b = ++a; // b -> 2 <-> a -> 2
b = ++a; // b -> 3 <-> a -> 3
b = ++a; // b -> 4 <-> a -> 4
}
Mantıksal Operatörler
Mantık işlemleri olan VE, VEYA, DEĞİL (AND, OR, NOT) yapmak için kullanıyoruz. İki tane boolean değer arasında bu işlemleri gerçekleştiriyor.
#include <iostream>
using namespace std;
int main() {
bool a{true};
bool b{false};
bool s1, s2, s3;
s1 = !a; // false
s2 = a && b; // false
s3 = a || b; // true
cout << s1 << s2 << s3 << endl;
}
Karşılaştırma Operatörleri
İki değeri karşılaştırmamızı sağlar. Karşılaştırma sonucu bize true veya false döndürür.
#include <iostream>
using namespace std;
int main() {
int a = 5, b = 5, c = 7;
a == b; // a, b'ye eşit mi? -> true
a != b; // a, b'ye eşit değil mi? -> false
a < c; // a, c'den küçük mü? -> true
a > b; // a, b'den büyük mü? -> false
a <= b; // a, b'den küçük veya eşit mi -> true
a >= c; // a, c'den büyük veya eşit mi -> false
}


Leave a Reply