Yazılım Yazarı Menu

Permalink:

Şart Fonksiyonları; if-else , else if, goto

Formdan verileri alarak kullanıcılarla etkileşime geçmiştik.
Bu dersimizde aldığımız verilere göre kullanıcıyla etkileşime geçeceğiz.
Bu derste ayrıca bazı localhostlar da $_POST komutunun değer almadığı için hata vermesinin çözümünü de göreceğiz.

” İf ” şart anlamına gelmektedir, ” else ” ise yada anlamını taşımaktadır. Biz programlamada if ile bir şart belirtiriz bu şart tutuyorsa belirttiğimiz kodları çalıştırmasını isteriz eğer tutmadığında da bir işlem yapmasını istiyorsak else ifadesini kullanırız ve yapması gereken işlemleri gösteririz. Kısaca if else ifadeleri bizim koşul (şart) ifadelerimizdir. Bir koşula göre işlem yaptırmak istediğimizde bunları kullanırız.

Eğer belirtilen şart tutuyorsa true ( doğru ) tutmuyorsa false ( yanlış ) değerleri döner.

Operand Nedir ?

Operand üzerinde işlem yapılan değerlere denir.

Örn.: 2 + 3 ifadesinde 2 ve 3 birer operandımızdır.

Operatör Nedir? 

Operatör operandların nasıl işleneceğini gösteren işaretlerdir.

Örn.: 2 + 3 ifadesinde + işareti operatördür.

 

Programlamada if ve else ifadelerini kullanırken operandlar ve operatör üzerinden işlem yaparız. Operandlar bizim karşılaştırmak istediğimiz değişkenlerimizdir. Peki karşılaştırma operatörlerimiz nelerdir ?

Karşılaştırma Operatörleri

Tekil Operatörler
OperatörYazıylaOkunuşuKullanımıAnlamıDönen DeğerKlavye Kısayolu
(Q)
==İki eşittir işaretiEşittir eşitsea == ba değeri b değerine eşitmi diye bakar.a değişkeni b değişkenine eşitse true, değilse false döndürür.Shift + 0
!=Ünlem ve eşittirEşit değilsea != ba değeri değerine eşit değil mi diye bakar.a eğişkeni b değişkenine eşit değilse true, eşitse false döndürür.Shift + 1veShift + 0
>Büyüktür işaretBüyüktüra > ba değeri b değerinden büyük mü diye bakar.a değişkeni b değişkeninden büyükse true, değilse false döndürür.Alt gr + 1
<Küçüktür işaretiKüçüktüra < ba değeri b değerinden küçük mü diye bakar.a değişkeni b değişkeninden küçükse true, değilse false döndürür.Alt gr + “
<=Küçüktür ve eşittir işaretiKüçük eşita <= ba değeri b değerinden küçük yada eşit mi diye bakar.a değişkeni b değişkenine eşitse veya a değişkeni b değişkeninden küçükse true, değilse false döndürür.Alt gr + ” veShift + 0
>=Büyüktür ve eşittir işaretiBüyük eşita >= ba değeri b değerinden büyük yada eşit mi diye bakar.a değişkeni b değşkenine eşitse veya a değişkeni b değişkeninden büyükse true, değilse false döndürür.Alt gr + 1veShift + 0

 Tekil operatörler iki operandı karşılaştırdığımız operatörlerdir.

Çoklu Operatörler
(Tekil operatörleri karşılaştıran operatörler.)
OperatörYazıylaOkunuşuKullanımıAnlamıDönen DeğerKlavye Kısayolu (Q)
&&İki “ile” işareti(AND) Vea == b && c == ba değeri b değerine eşitmi diye bakar.a değişkeni b değişkenine eşitse true, değilse false döndürür.Shift + 6
||İki dik işareti(OR) Veyaa > ba değeri b değerinden büyük mü diye bakar.a değişkeni b değişkeninden büyükse true, değilse false döndürür.Alt gr + _

Çoklu operatörler, tekil operatörlerin operand haline geldiği ve birden fazla şartı değerlendiren operatörlerdir.

Örnekler

Tekil operatör örnekleri

$a = 1; // a değişkeni 1'e eşittir.
$b = 1; // b değişkeni 1'e eşittir.
$c = $a == $b; // c değişkeni $a == $b 'dir.

Bu durumda a ve b birbirine eşit $c değişkeni true değerini alır.

$a = 1;
$b = 2;
$c = $a == $b;

Bu durumda a ve b birbirine eşit olmadığından $c değişkeni false değerini alır.

$a = 2;
$b = 4;
$c = $a < $b;

Bu durumda a değişkeni b değişkeninden küçük olduğu için $c değişkeni true değerini alır.

$a = 4;
$b = 1;
$c = $a < $b;

Bu durumda a değişkeni b değişkeninden büyük olduğu için şartta ise küçük olması istendiği için $c değişkeni false değerini alır.

$a = 6;
$b = 8;
$c = $a <= $b;

Bu durumda true dönmesi için a’nın b’den küçük veya b’ye eşit olması gerekir. Bizim değerlerimize bakıldığında a değişkeni b değişkeninden küçüktür. Dolayısıyla true döner.


$a = 6;
$b = 6;
$c = $a <= $b;

Bu durumda true dönmesi için a’nın b’den küçük veya b’ye eşit olması gerekir. Bizim değerlerimize bakıldığında a değişkeni b değişkenine eşittir. Dolayısıyla true döner.


$a = 6;
$b = 8;
$c = $a >= $b;

Bu durumda true dönmesi için a’nın b’den büyük veya b’ye eşit olması gerekir. Bizim değerlerimize bakıldığında a değişkeni b değişkeninden küçüktür. Dolayısıyla false döner.

Çoklu Operatörler Örnekleri

$a = 6;
$b = 7;
$c = 4;
$d = 10;
$e = $a == $b && $c != $d;

Bu durumda true dönmesi için a’nın b’ye eşit olması ve c’nin d’ye eşit olmaması gerekiyor. Bizim değerlerimize bakıldığında c’nin d’ye eşit olmaması doğrudur ama a değeri b değerine eşit olmadığı için $e değişkeni false değeri alır.
Yani inceleyecek olursak; bu şartta $a == $b ‘nin true ve $c != $d ‘ninde true döndürmesi gerekir.
Ama $a == $b false ve $c != $d true dönecektir bizde ve buda false && true olacağından bu şartımız tutmayacaktır.

$a = 6;
$b = 7;
$c = 4;
$d = 10;
$e = $a == $b || $c != $d;

Bu durumda true dönmesi için a’nın b’ye eşit olması veya c’nin d’ye eşit olmaması gerekiyor.
Bizim şartımızda a değeri b değerine eşit değil fakat c değeri d değerine eşit olmadığından şartımız tutar ve true döner. $e değişkeni true değerini alır.

if(true){ // şart true dönerse
// yapılacak işlem
}

Örn.:

$a = 1;
$b = 2;
if($a == $b){
echo "A değişkeni b değişkenine eşittir.";
}

Bu örneğimize bakarsak $a == $b geriye false gönderecektir çünkü; a değişkeni ve b değişkeni birbirine eşit değildir.
Bu yüzden ekrana birşey yazmayacaktır. Eğer eşit olsaydı ekrana “A değişkeni b değişkenine eşittir” yazacaktı.


$a = 1;
$b = 1;
if($a == $b){
echo "A değişkeni b değişkenine eşittir.";
}

Bu örneğimizde ekrana “A değişkeni b değişkenine eşittir.” yazar.

Else İfadesi

Else ifadesi değilse anlamına geliyor demiştik.


$a = 1;
$b = 2;
if($a == $b){
echo "A değişkeni b değişkenine eşittir.";
}else{
echo "A değişkeni b değişkenine eşit değildir."
}

Bu örneğimizde $a == $b true döndürürse ekrana “A değişkeni b değişkenine eşittir.” yazacaktır.
Örneğimizde $a değişkeni $b değişkenine eşit değildir. Bu yüzden değilse (else) ifadesi çalışacak ve onun süslü parantezleri içerisindeki kod çalışıp ekrana “A değişkeni b değişkenine eşit değildir.” yazacaktır.

if konusunda hep sayılardan örnek verdik ama sayı olmak zorunda değildir.


$kullaniciadi = "ali";
$sifre = "1234";
if($kullaniciadi == "Mehmet" && $sifre == "1234"){
echo "Hoşgeldiniz Mehmet Bey";
}else{
echo "Kullanıcı adı veya şifre yanlış..";
}

Bu örnekte değişkenlerimiz sayı (integer) değil metinsel (string) birer değer almıştır.
Şartta ise $kullaniciadi değişkeninin değeri Mehmet’e ve $sifre değişkeninin değeri 1234’e eşitse ekrana “Hoşgeldiniz Mehmet Bey” yazdıracaktır.
Değilse “Kullanıcı adı veya şifre yanlış..” yazdıracaktır.
Biz bu örnekte dolayısıyla “Kullanıcı adı veya şifre yanlış..” mesajını ekranda görürüz.

Else İf  İfadesi

Else if ifadesi birden fazla if kullanacağımızda kullanılabilir.


$a = 1;
$b = 2;
if($a == $b){
echo "A değişkeni b değişkenine eşittir.";
}elseif($a > $b){
echo "A değişkeni b değişkeninden büyüktür."
}elseif($a < $b){
echo "A değişkeni b değişkeninden küçüktür."
}

Bu şartımızı inceleyecek olursak $a değişkeni $b değişkenine eşit mi diye bakıyor, öyleyse “A değişkeni b değişkenine eşittir” yazıyor.
Değilse $a değişkeni $b değişkeninden büyük mü diye bakıyor, öyleyse “A değişkeni b değişkeninden büyüktür.” yazıyor.
Değilse $a değişkeni $b değişkeninden küçük mü diye bakıyor, öyleyse “A değişkeni b değişkeninden küçüktr. ” yazıyor.

Goto İfadesi

Goto ifadesi git anlamındadır ve belirtilen yere gider.


$kart = "AvmKart";
if($kart == "AvmKart"){
goto avm;
}else{
goto market;
}
avm:
echo "Kartınızı avmlerde kullanabilirsiniz."
exit();
market:
echo "Kartınızı marketlerde kullanabilirsiniz.";

Bu örnekte $kart değişkeninin değeri AvmKart ise goto avm; çalışacak ve avm diye tanımlı satırdan itibaren kod başlayacaktır ve ekrana “Kartınızı avmlerde kullanabilirsiniz” yazacaktır ve exit(); komutuyla kodlar sonlanacaktır.
Eğer kart AvmKart değilse “Kartınızı marketlerde kullanabilirsiniz.” yazacaktır.

Not: exit(); fonksiyonu konulduğu yerden itibaren kodları durdurur ve alt satırdaki kodları çalıştırmaz. Burada kullanma amacımız Kart AvmKart ise avm bölümüne gidecek ve ekrana yazıyı yazacak fakat yazdıktan sonra kod aşağı doğru devam edeceğinden “Kartınızı marketlerde kullanabilirsiniz.” de yazacaktır ama exit(); kullanırsak eğer AvmKart ise Kartınızı avmlerde kullanabilirsiniz yazıp çıkacaktır.

Bazı Localhostlarda Alınan $_POST Hatasının İf ile Giderilmesi

Bazı localhostlar değişkenlerin değer alıp almadıklarını kontrol eder ve değer almıyorlarsa hata verir. Biz $_POST ifadesinin örneklerinde bunu belirtmiştik ve ilk açtığınızda daha post bile etmeden hata alıyorsanız önemsemeyin demiştik.

Şöyle bir kod kullanıyorsunuz varsayalım;

<?php
echo $_POST["ad"];
echo $_POST["soyad"];
?>
<form action="" method="POST">
Adınız : <input type="text" name="ad" />
Soyadınız: <input type="text" name="soyad" />
<input type="submit" value="Gönder" />
</form>

Böyle bir kodda bahsettiğimiz hatayı alabilmek mümkün çünkü; biz sayfayı açtığımızda kodlar ilk satırdan okunmaya başlıyor ve ilk satırlarda $_POST[“ad”] ve $_POST[“soyad”] değerini yazdır diyor fakat biz zaten sayfaya yeni girmişiz henüz formu doldurup post etmemişiz bu yüzden $_POST[“ad”] ve $_POST[“soyad”] bir değere sahip değil, hatta tanımlı bile değil.
Bu sebeple bazı localhostlarda hata alırız bunu önlemenin yolu $_POST[“ad”] ve $_POST[“soyad”] eğer tanımlanmışsa yani formdan ad ve soyad nameli inputlar post edilmişse echo ile yazdırmayı yapacağız. İşte burada if devreye giriyor.

<?php
if($_POST["ad"] || $_POST["soyad"])
{
echo $_POST["ad"];
echo $_POST["soyad"];
}
?>
<form action="" method="POST">
Adınız : <input type="text" name="ad" />
Soyadınız: <input type="text" name="soyad" />
<input type="submit" value="Gönder" />
</form>

Bu şekilde bu hata önlenebilir. Böylece kod if şartı gerçekleşiyorsa yani $_POST[“ad”] veya $_POST[“soyad”] tanımlanmışsa ekrana bunların değerlerinni yazdıracaktır.

Burada || (veya) kullanmamızın sebebi formumuz post edildiği zaman hiçbirşey girmesekte ad ve soyad nameli inputlar post edildiği için ikiside tanımlanır. O yüzden sadece $_POST[“ad”]; kullansak bile olur. Amaç kafanızda soru işareti bırakmamak olduğundan || işareti ile ikisinide kullanmış olduk. Eğer siz iki değerinde dolu gönderilmesini istiyorsanız && işareti kullanarak iki şartında tutmasını sağlayabilirsiniz.

İyi günler dilerim.
Yazılım Yazarı

(2006) kez okundu.

    • Eren

      C# kullanırken bu döngüleri kullanıyordum kod yazmayı özlemişim :)

      • admin

        Konuda döngü değil şart ifadeleri yazıyor ama genelde döngü, şart ifadeleri vs. her dilde aynıdır :) Tabii düşük seviye programlama dilleri biraz farklı gelebilir.
        Yorumunuz için çok teşekkürler :)

    • Yorum bırakıyor olduğunuz için teşekkürler.
    escort bayan ankara ankara escort ankara escort bayan sıhhıye escort