27 Ekim 2012 Cumartesi

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.


KAYNAK: http://www.bilgisayardershanesi.com/bilgisayar_dersleri/java-script-mantiksal-islemler.html

Hiç yorum yok:

Yorum Gönder