Operatör Önceliği
BERK programlama dilinde operatörlerin öncelik sırası ve birleşme yönleri. Öncelik seviyesi arttıkça operatörler önce değerlendirilir.
📊 Öncelik Tablosu
| Öncelik | Operatör | Açıklama | Birleşme |
|---|---|---|---|
| 1 (En Yüksek) | () [] . |
Parantez, Dizin, Üye erişimi | Soldan sağa |
| 2 | ++ -- ! ~ + - |
Unary operatörler (artır, azalt, değil, bitwise not, tekli +/-) | Sağdan sola |
| 3 | ** |
Üs alma | Sağdan sola |
| 4 | * / % |
Çarpma, bölme, mod | Soldan sağa |
| 5 | + - |
Toplama, çıkarma | Soldan sağa |
| 6 | << >> |
Bit kaydırma (shift) | Soldan sağa |
| 7 | < <= > >= |
İlişkisel karşılaştırma | Soldan sağa |
| 8 | == != |
Eşitlik kontrolü | Soldan sağa |
| 9 | & |
Bitwise AND | Soldan sağa |
| 10 | ^ |
Bitwise XOR | Soldan sağa |
| 11 | | |
Bitwise OR | Soldan sağa |
| 12 | && ve and |
Mantıksal VE | Soldan sağa |
| 13 | || veya or |
Mantıksal VEYA | Soldan sağa |
| 14 | ? : |
Ternary koşul operatörü | Sağdan sola |
| 15 | = += -= *= /= %= |
Atama operatörleri | Sağdan sola |
| 16 (En Düşük) | , |
Virgül operatörü | Soldan sağa |
💡 Örnekler
Öncelik Sırası
// Çarpma toplama önce gelir
değişken sonuç = 5 + 3 * 2 // = 5 + 6 = 11 (not 16)
// Parantez en yüksek önceliğe sahip
değişken sonuç2 = (5 + 3) * 2 // = 8 * 2 = 16
// Üs alma çarpmadan önce
değişken sonuç3 = 2 * 3 ** 2 // = 2 * 9 = 18
// Mantıksal operatörler
değişken koşul = doğru veya yanlış ve yanlış // = doğru (ve önce)
değişken koşul2 = (doğru veya yanlış) ve yanlış // = yanlış
Birleşme Yönü
// Soldan sağa (çoğu operatör)
değişken a = 10 - 5 - 2 // = (10 - 5) - 2 = 3
// Sağdan sola (atama)
değişken x, y, z
x = y = z = 5 // Sağdan başlar: z=5, y=5, x=5
// Sağdan sola (üs alma)
değişken b = 2 ** 3 ** 2 // = 2 ** (3 ** 2) = 2 ** 9 = 512
Karmaşık İfadeler
değişken result = 10 + 5 * 2 - 3 ** 2 / 3
// Adım adım:
// 1. 3 ** 2 = 9 (üs alma)
// 2. 5 * 2 = 10 (çarpma)
// 3. 9 / 3 = 3 (bölme)
// 4. 10 + 10 = 20 (toplama)
// 5. 20 - 3 = 17 (çıkarma)
// Sonuç: 17
// Parantezle netleştirme
değişken result2 = ((10 + (5 * 2)) - ((3 ** 2) / 3)) // Daha okunabilir
Mantıksal Operatörler
değişken x = 5
değişken y = 10
değişken z = 15
// && (ve) || (veya) önce gelir
değişken sonuç = x < y || y > z && z > x
// = (x < y) || ((y > z) && (z > x))
// = doğru || (yanlış && doğru)
// = doğru || yanlış
// = doğru
// Parantez kullanımı önerilir
değişken açık = (x < y) || ((y > z) && (z > x))
Bitwise Operatörler
değişken a = 0b1100 // 12
değişken b = 0b1010 // 10
// Bitwise operatörler mantıksal operatörlerden önce
değişken sonuç = a & b | a ^ b
// = (a & b) | (a ^ b)
// = (0b1000) | (0b0110)
// = 0b1110 = 14
⚠️ İyi Pratikler
- Karmaşık ifadelerde parantez kullanın - okunabilirliği artırır
- Bir satırda çok fazla operatör kullanmaktan kaçının
- Öncelik sırası belirsizse parantez ekleyin
- Kod inceleme sırasında operatör önceliği hatalarına dikkat edin