Java Script Mantıksal İşlemler

Akış denetimi ve
döngü denetimi derslerimizde koşul ifadelerinin kullanıldığını
gördük. Koşul deyimleri bu koşul ifadesine göre eleme yapıyor, döngü
deyimleri bu koşul ifadesine göre çevrim oluşturuyordu. Ancak bu
koşul ifadesi tek bir koşuldan oluşuyordu, acaba birden fazla
koşulun sorgulanması mümkün müdür?



Elbette. Bunun için ilk yol, deyim içinde deyim kullanmaktır.
Örneğin aşağıdaki uygulamada if koşul deyimi içiçe kullanılarak,
sayının 25 ile 60 arasında olduğunu sorgulamaktadır:





Javascript:

<html>

<head>

<title>İkili Sorgulama</title>

<script language="JavaScript">

//İlk fonksiyonu hazırlıyoruz.

function onay()

{

document.write("<h1>Sayı 25 ile 60 arasındadır.</h1>")

}

//İkinci fonksiyonu hazırlıyoruz.

function red()

{

document.write("<h1>Sayı 25 ile 60 arasında değildir.</h1>")

}

</script>

</head>

<body>



<script language="JavaScript">

var x=38

if (x < 60)

{

if (x > 25) onay()

else red()

}

else red()

</script>



</body>

</html>






Burada içiçe if koşul deyimi kullanılmış ve önce sayının 60`dan
küçük olması sorgulanıyor. Sayının 60`dan küçük olması halinde, bu
sefer de sayının 25`ten büyük olması sorgulanıyor. Yani 60`tan küçük
olan sayıların 25`ten büyük olması sorgulanıyor. Böylece sayının
60`dan küçük ve 25`ten büyük olması sorgulanmış oluyor.



JavaScript`te "ve" Operatörü: "&&"



İçiçe deyim kullanmak da güzel bir yol ama daha kısa bir yolumuz
var: Mantıksal İşlemler. Sayının hem 25`ten büyük olmasını, hem de
60`tan küçük olmasını istiyorsak ve anlamına gelen && mantıksal
işlem işareti ile iki koşulu tek bir koşul ifadesi haline
dönüştürebiliriz:





Javascript:

<html>

<head>

<title>Mantıksal İşlemler</title>

<script language="JavaScript">

//İlk fonksiyonu hazırlıyoruz.

function onay()

{

document.write("<h1>Sayı 25 ile 60 arasındadır.</h1>")

}

//İkinci fonksiyonu hazırlıyoruz.

function red()

{

document.write("<h1>Sayı 25 ile 60 arasında değildir.</h1>")

}

</script>

</head>

<body>



<script language="JavaScript">

var x=65

if (x < 60 && x > 25) onay()

else red()

</script>



</body>

</html>






Bu sefer && (ve) işaretini kullanarak sayının 60`tan küçük olmasını
ve sayının 25`ten büyük olmasını sorguladık. Buradaki ve kavramını
Matematik konusunun mantık (logic) dersinden hatırlıyorsunuzdur.
(Matematiği anlamakta zorlananlar programcılığa hiç başlamasınlar.)
Özetle ve ifadesinin sorgulama sonuçları şöyleydi:

Doğru && Doğru = Doğru

Doğru && Yanlış = Yanlış

Yanlış && Doğru = Yanlış

Yanlış && Yanlış = Yanlış



&& operatörüyle yapılan sorgulamanın onaylanması için, her iki
koşulun da sağlanması gerekir. Aksi takdirde sorgulama
onaylanmayacaktır.



JavaScript`te "veya" Operatörü: "||"

Bir başka mantıksal işlem operatörü: || (veya anlamındadır; bu
işareti oluşturmak için iki defa ALTGR + "tire" tuşuna basın. "tire"
tuşu backspace (geri al) tuşunun solunda bulunur. Eminim matematik
bilgilerinden hiç kuşku duymadığım okuyucular bu operatörün
sorgulama sistemini hemen hatırlamışlardır ama ben yine de yazayım.


Doğru || Doğru = Doğru

Doğru || Yanlış = Doğru

Yanlış || Doğru = Doğru

Yanlış || Yanlış = Yanlış



|| (veya) operatörünün && (ve) operatöründen farkı görülüyor. Bir
sorgulamada || operatörü kullanılmışsa, koşullardan bir tanesinin
gerçekleşmesi onay için yeterlidir. Son uygulamamızda 65 sayısını &&
operatörü ile sorgulamıştık:



(65 < 60) && (65 > 25)



Bu koşulun ilk kısmı yanlış, ikinci kısmı ise doğruydu. Yanlış &&
doğru = yanlış olduğundan sorgulama sonucu red fonksiyonuna
gönderilmişti. Aynı koşul ifadelerini || operatörü ile sorgulasaydık
sonuç başka olacaktı:



(65 < 60) || (65 > 25)



Buradaki işlem: Yanlış || doğru = doğru işlemidir. Ve koşul ifadesi
kabul görür. Bu nedenle && ile || ifadelerini ne zaman
kullanacağımıza dikkat etmeliyiz. Şimdi || operatörü için başka bir
uygulama geliştirelim: Bu uygulamamız öncekiyle aynı sonucu versin.
Yanlız bunun için koşul ifadesini ve koşul işlemlerini
değiştireceğim, aradaki farka dikkat ediniz.





Javascript:

<html>

<head>

<title>Mantıksal İşlemler</title>

<script language="JavaScript">

//İlk fonksiyonu hazırlıyoruz.

function onay()

{

document.write("<h1>Sayı 25 ile 60 arasındadır.</h1>")

}

//İkinci fonksiyonu hazırlıyoruz.

function red()

{

document.write("<h1>Sayı 25 ile 60 arasında değildir.</h1>")

}

</script>

</head>

<body>



<script language="JavaScript">

var x=65

if (x > 60 || x < 25) red()

else onay()

</script>



</body>

</html>






Aradaki farkı anlayanlar bu işi kapmış demektir.



JavaScript`te "değil" Operatörü: "!"

Bir diğer mantıksal işlem operatörü: ! (değil) operatörüdür. Bu
operatör koşul ifadesinin solunda yer alır ve o ifadenin olmamasını
sorgular. Uygulamayla gösterelim:





Javascript:

<html>

<head>

<title>Mantıksal İşlemler</title>

<script language="JavaScript">

//İlk fonksiyonu hazırlıyoruz.

function negatif()

{

document.write("<h1>Negatif sayı.</h1>")

}

//İkinci fonksiyonu hazırlıyoruz.

function pozitif()

{

document.write("<h1>Pozitif sayı.</h1>")

}

</script>

</head>

<body>



<script language="JavaScript">

var x=12

if (!(x >= 0)) negatif()

else pozitif()

</script>



</body>

</html>






Uygulamamızda 12 değeri verilen x değişkeninin 0`dan küçük olup
olmadığı sorgulanmakta. Eğer sıfırdan büyük değilse negatif(), aksi
takdirde pozitif() fonksiyonları çağrılmaktadır.,



Değişkenlere Mantıksal Değer Atama

Sayfamızda aynı koşul ifadelerini birçok kez sorguluyorsak veya
koşul ifadesi çok uzunsa, değişkenlere atamayı tercih edebiliriz.
Yapı olarak değişkene normal bir değer vermekten farkı yoktur.
Örneğin üstteki uygulamayı şu hale dönüştürebiliriz:





Javascript:

<html>

<head>

<title>Değişkenlere Mantıksal Değer Atama</title>

<script language="JavaScript">

//İlk fonksiyonu hazırlıyoruz.

function negatif()

{

document.write("<h1>Negatif sayı.</h1>")

}

//İkinci fonksiyonu hazırlıyoruz.

function pozitif()

{

document.write("<h1>Pozitif sayı.</h1>")

}

</script>

</head>

<body>



<script language="JavaScript">

var x=12

var y=((x > 0) || (x == 0))

if (!y) negatif()

else pozitif()

</script>



</body>

</html>






Bu uygulamamızda ((x > 0) || (x == 0)) mantıksal değerini y
değişkenine atadık.



Hanci.org sizlere daha iyi hizmet sunmak için çerezleri kullanıyor.
Hanci.org sitesini kullanarak çerez politikamızı kabul etmiş olacaksınız.
Detaylı bilgi almak için Gizlilik ve Çerez Politikası metnimizi inceleyebilirsiniz.