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:
<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:
<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.
<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:
<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:
<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.
Â
Â
Â
Â
Â
Â
Yorumlar
Yorum Yok
Yorumunuzu Ekleyin
Yorum eklemek için giris yapmalısınız.