> For the complete documentation index, see [llms.txt](https://mehmet-akif-akkus.gitbook.io/turkce-programlama-diline-giris/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mehmet-akif-akkus.gitbook.io/turkce-programlama-diline-giris/temel_islecler/mantiksal-islecler-ve-veya-degil.md).

# Mantıksal İşleçler (ve, veya, değil)

İlişkisel ifadeleri mantık işleçleri ile birbirine bağlayabiliriz. İsterseniz öncelikle basit mantık kurallarını bir hatırlayalım:

| İşleç |              Sembolü             | Anlamı                                         |
| :---: | :------------------------------: | ---------------------------------------------- |
|   ve  | ![](/files/-M0_a-lLn_xDOoZ0vdlA) | Her iki ifade birlikte doğru olunca doğru olur |
|  veya | ![](/files/-M0_a-lNxYr5zVY5i51p) | İki ifadeden birisinin doğru olması yeterli    |
| değil | ![](/files/-M0_a-lPvWKDYS5e5PR1) | Doğruysa yanlış, yanlışsa doğruya dönüşür      |

Şimdi bir örnek uygulama üzerinde mantıksal işleçlerin nasıl çalıştığını görelim:

## ve işleci örneği

Örneğin ehliyet kursuna yazılabilmek için gerekli olanlar ile alakalı bir program geliştirelim. Bildiğimiz üzere ehliyet alabilmek için **1)** 18 yaşını doldurmak, **2)** kurs ücretini karşılamak şeklinde 2 koşul belirtebiliriz. Bu koşulları mantıksal işleçler yardımıyla denetleyelim.

Yukarıdaki paragraftan da anladığımız üzere bu iki koşulun birden doğru olması gerekir. Hangi mantıksal işlecini kullanmalıyız sorusunu **"ve"** işleci diyerek cevaplandırabiliriz.

Şimdi koda bakalım:

\
değişken yaş = 20\
değişken para = 2500\
yaş >= 18 ve para >= 2000

## veya işleci örneği

Bu sefer alışverişe çıkacağımızı varsayalım. Alışverişe gidebilmek için ne gerekir? Ya nakit para ya da limiti olan bir kredi kartı. İkisinden birisinin olması bu iş için gereklidir. Mantıksal işleçler yardımı ile bu koşulları denemek istesek ne kullanırız? Çok doğru tahmin ettiniz **"veya"**.

\
değişken nakitPara = 20\
değişken kartLimiti = 150\
nakitPara >= 100 ve kartLimiti >= 100

Kodlarımızı [TPD editörü](http://turkceprogramlamadili.org) üzerinde aşağıdaki kod bölütünü kopyala yapıştır yaparak deneyebiliriz.

Editörün son satırdaki ifade için *doğru* ya da *yanlış* değerleri ürettiğine dikkat edelim. **Yaş** ya da **para** değerleri üzerinde değişiklik yapabilir, sonuçları gözlemleyebiliriz.

## Başka bir örnek

Şöyle başka bir örnek: Kişinin yaşının 20 ile 30 arasında olup olmadığını anlayan programı geliştirelim:

\
değişken yaş = 20<br>

Burada 2. satırda **ve** mantıksal işlecini kullanarak bunu başarabiliriz. Bu işleç sağdaki ve soldaki iki ifadenin de birden doğru olması durumunda *doğru* sonucunu üretecektir. Aksi durumda, yani en az birisinin hatalı olması (yaşın 10, ya da 40 olması gibi) durumunda *yanlış* sonucunu alıyor olacağız.

## Özetleyecek olursak

Yukarıda bahsettiğimiz örnekleri nasıl kodlayacağımıza aşağıdaki tablodan bakabiliriz:

| İşleç |               Örnek kullanımı               | Anlamı                                                        |
| :---: | :-----------------------------------------: | ------------------------------------------------------------- |
|   ve  |        yaş >= 18 **ve** para >= 2000        | Yaş en az 18 **ve** en az 2000 TL para                        |
|  veya | nakitPara >= 100 **veya** kartLimiti >= 100 | 100₺ den fazla nakit para **veya** 100₺ den fazla kart limiti |
| değil |               **!**(yaş >= 18)              | Yaş 18'den küçük                                              |

\
\
document.getElementById("sorunlu").innerHTML += 'yaş >= 20 ve yaş <= 30';\
\
function qsa(sel) {\
&#x20;   return Array.apply(null, document.querySelectorAll(sel));\
}\
\
//deneme ismindeki tüm editörler codemirror editorü olacak\
qsa(".deneme").forEach(function (editorEl) {\
&#x20; CodeMirror.fromTextArea(editorEl, {\
&#x20;   mode: "simplemode",\
&#x20;   readOnly: true,\
&#x20;   lineNumbers: true,\
&#x20;   theme: 'eclipse'\
&#x20; });\
});\
\
//deneme ismindeki tüm editörler codemirror editorü olacak\
qsa(".oneline").forEach(function (editorEl) {\
&#x20; CodeMirror.fromTextArea(editorEl, {\
&#x20;   mode: "simplemode",\
&#x20;   readOnly: true,\
&#x20;   lineNumbers: false,\
&#x20;   theme: 'eclipse2'\
&#x20; });\
});<br>
