PHP: Akış Kontrol Deyimleri
- 5 Mart 2022
- Eğitim, PHP Dersleri
PHP programlarının normal akışı, yukarıdan aşağıya doğru doğrusal olarak gerçekleşmektedir. Ancak programcı tarafından bu akışın doğrusallığı zaman zaman sıçramalı ya da döngüsel yapılarla değiştirilebilir. Bu değişikliği gerçekleştiren deyimlere akış kontrol deyimleri adı verilir.
Akış kontrol deyimlerini genel olarak koşullu ifadeler ve döngüler şeklinde iki kategoride sınıflayabiliriz.
Koşullu İfadeler
Bilgisayar programları için önemli bir özellik olan “karar verme” olgusu, en basit şekliyle bilgisayarın belirli bir durum karşısında, önüne gelen seçeneklerden en uygun olanını seçerek ona uygun olarak davranması şeklinde açıklanabilir.
Diğer bir deyişle bir program için karar verme durumu, program akışının “koşul” adı verilen ve Boolean, yani True (doğru) ya da False (yanlış) değer alan ifadenin, aldığı değere göre yönlendirilmesi biçiminde gerçekleştirilir.
En temel koşullu ifade biçimi, Türkçede “eğer” anlamına gelen “if(koşul) …” yapısıdır.
Bununla birlikte, gelişmiş programlama dillerinin hemen hemen hepsinde bulunan diğer bir koşul yapısı ise bir koşula ait çok sayıda durumun birlikte değerlendirildiği “switch – case” yapısıdır.
Koşullu İfadeler – If
En temel koşul yapısı if (kosul) {a} şeklindedir. Burada {a} kısmına, koşul sağlandığında gerçekleştirilecek deyim (ya da deyimler) yazılır.
Koşullu ifadeler bir koşulun doğru ya da yanlış sonuçlanmasına göre çalışacak kod bloklarını belirlediğimiz yapılardır. Yazılımın temel yapıtaşlarından olan bu ifadeleri iyi kavramamızda fayda var çünkü sıklıkla kullanılıyor.
Koşullu İfadeler – If/Else
Aksi halin söz konusu olduğu durumlarda ise if (kosul) {a} else {b} ifadesi kullanılır. Bu durumda koşulun aksinin gerçekleştiği, yani koşulun aldığı değerin gerçekleşmediği durumlarda else ifadesinden sonra yer alan {b} deyimi (ya da deyimleri) çalıştırılacaktır.
1 2 3 4 5 | <?php $sayi=15; if ($sayi%2==0) echo "$sayi bir çift sayıdır."; else echo "$sayi bir tek sayıdır."; ?> |
15 bir tek sayıdır.
Aynı sonucu aşağıdaki kod ile de alabiliriz:
1 2 3 4 5 | <?php $sayi=15; if ($sayi%2==0) echo "$sayi bir çift sayıdır."; if (!$sayi%2==0) echo "$sayi bir tek sayıdır."; ?> |
Ancak bu durumda kodu gereksiz yere uzatmış oluruz. Unutmayın, en iyi program, yapılmak isteneni en az kod yazarak gerçekleştiren programdır.
Bir koşul ve onun eksi halinin söz konusu olduğu durumlarda, yukarıdaki gibi ilk koşulun gerçekleşmediği ikinci bir koşul yazmak yerine, else deyimini kullanmak daha yerinde olacaktır.
Koşul ya da aksi durumun doğrulanması durumunda gerçekleştirilecek işlem sayısı birden fazla olabilir. Bu gibi durumlarda, programlama dillerinde bloklama etiketleri kullanılır.
PHP dilinde bloklama işlemlerinde { ve } (açık ve kapalı küme parantezleri) kullanılır.
Örnek program için şöyle bir senaryo geliştirelim:
Bir mağaza, müşterilerine iki türde indirim uygulamaktadır.
Bunlardan ilki, hafta sonu indirimidir. Yani alışveriş edilen gün Cumartesi ya da Pazar ise toplam alışveriş tutarına %10 indirim uygulanmaktadır.
İkincisi ise, 150 TL ve üstü alışverişlerde uygulanan %20 indirimdir.
Her iki duruma da giren alışverişler, iki indirimden de faydalanabilmektedir.
1 2 3 4 5 6 7 8 9 10 11 12 | <?php $alisverisTutari=200; $gun=date("D"); if ($gun=="Sat" || $gun=="Sun"){ $alisverisTutari-=10*$alisverisTutari/100; echo "Hafta sonu indirimi uygulanmıştır. Yeni tutar: $alisverisTutari"; } if ($alisverisTutari>=150){ $alisverisTutari-=20*$alisverisTutari/100; echo "150 TL üstü indirimi uygulanmıştır. Yeni tutar: $alisverisTutari"; } ?> |
Koşullu İfadeler – If/Elseif/Else
If deyiminin en kapsamlı biçimi, yapıya “aksi halde eğer” anlamını taşıyan “Elseif” bölümünün eklendiği biçimdir. Koşulun aksi halinde başka alt koşulların bulunması durumunda kullanılır.
Genel yapısı aşağıdaki gibidir:
1 2 3 4 5 6 | If (kosul) {a} Elseif (kosul_1) {a_1} Elseif (kosul_2) {a_2} … Elseif (kosul_n) {a_n} Else {b} |
Bu yapıda, ilk If deyimine ait koşul sağlanırsa diğer durumlara bakılmaksızın sadece {a} deyimi/deyimleri çalıştırılır ve program akışı koşul yapısının sonundan devam eder. İlk koşul sağlanmazsa sırasıyla koşul_1, koşul_2, …, koşul_n koşulları denetlenir. Bunlardan hangisi sağlanırsa, ilgili deyim/deyimler çalıştırılır.
Hiçbir koşulun sağlanmadığı durumda ise, Else deyiminden sonra yer alan {b} deyimi/deyimleri çalıştırılır.
Örnek program için şöyle bir senaryo geliştirelim:
Kullanıcı tarafından girilecek bir notun, aşağıdaki tabloya göre karşılık gelen harf notu hesaplanacak ve kullanıcıya bildirilecektir.
Not Aralığı | Karşılık Gelen Harf |
---|---|
0-19 | FF |
20-29 | FD |
30-39 | DD |
40-49 | DC |
50-59 | CC |
60-69 | CB |
70-79 | BB |
80-89 | BA |
90-100 | AA |
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php $Not=65; //Öğrencinin almış olduğu not if ($Not<=19) echo "$Not = FF"; elseif ($Not<=29) echo "$Not = FD"; elseif ($Not<=39) echo "$Not = DD"; elseif ($Not<=49) echo "$Not = DC"; elseif ($Not<=59) echo "$Not = CC"; elseif ($Not<=69) echo "$Not = CB"; elseif ($Not<=79) echo "$Not = BB"; elseif ($Not<=89) echo "$Not = BA"; elseif ($Not<=100) echo "$Not = AA"; else echo "$Not notuna karşılık gelen harf notu yoktur."; ?> |
Sonuç: 2. satırda öğrencinin almış olduğu notu belirterek 3. satırda koşullu döngüye sokuyoruz. 3. ve daha sonraki satırlarda koşullar gerçekleşmediğinden bir sonraki satırda bulunan koşula geçerek koşul sorgulaması yapılır. Ta ki 8. satırda bulunan koşul gerçekleşene kadar devam ediyor ve sonuç olarak ekrana 65 = CB yazdırılıyor.
Aşağıdaki örneğimizde de kişinin cinsiyetine göre boyu ortalama boy ile karşılaştırılmaktadır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php $cinsiyet="E"; $boy=180; if($cinsiyet=="K"){ if ($boy<160){ echo "Boyunuz ortalamanın altındadır."; }elseif($boy>160){ echo "Boyunuz ortalamanın üzerindedir."; }else{ echo "Boyunuz tam ortalamadadır."; }elseif($cinsiyet=="E"){ if ($boy<170){ echo "Boyunuz ortalamanın altındadır."; }elseif ($boy>170){ echo "Boyunuz ortalamanın üzerindedir."; }else{ echo "Boyunuz tam ortalamadadır."; } }else{ echo "Cinsiyet bilgisi hatalı girildi..."; } ?> |
Koşullu İfadeler – Switch/Case
Aynı ifadenin, aldığı farklı değerlere karşılık gelen durumlarının belirlendiği koşullu ifade biçimi switch/case yapısıdır.
Aslında bu yapı kullanılarak gerçekleştirilen akış kontrolü, bir dizi if-elseif ifadesi kullanılarak da gerçekleştirilebilir. Ancak bu durum gereksiz kod kalabalığına ve karmaşıklığına yol açacaktır.
İfadenin genel biçimi aşağıdaki gibidir:
1 2 3 4 5 6 7 8 9 10 11 | <?php switch (ifade){ case değer1: //ifade=değer1 olduğunda işletilecek kod; break; case değer2: //ifade=değer2 olduğunda işletilecek kod; break; default: //ifade, değer1 ve değer2’nin her ikisinden de farklı olduğunda işletilecek kod; } ?> |
Örnek olarak 0 ile 9 arasındaki bir sayının Türkçe okunuşunu yazacak PHP kodunu switch/case yapısını kullanarak yazalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <?php $Gelen_Sayi=7; switch ($Gelen_Sayi){ case "0": $sonuc="SIFIR"; break; case "1": $sonuc="BİR"; break; case "2": $sonuc="İKİ"; break; case "3": $sonuc="ÜÇ"; break; case "4": $sonuc="DÖRT"; break; case "5": $sonuc="BEŞ"; break; case "6": $sonuc="ALTI"; break; case "7": $sonuc="YEDİ"; break; case "8": $sonuc="SEKİZ"; break; case "9": $sonuc="DOKUZ"; break; default: $sonuc="Giriş Anlaşılamadı..."; } echo ($sonuc); ?> |
- 5 Mart 2022
- Paint Yazılım
Diğer Yazılarımız
Tüm YazılarımızSoru işareti kalmasın
Bu yazı hakkında aklınıza takılanlar, bir fikriniz belkide şikayetiniz vardır. Yada yazımızda hatalar olduğunu düşünüyor olabilirsiniz. Peki neden bize ulaşmayı düşünmeyesiniz ki?
Hizmetlerimiz
Binlerce müşterimizin yararlandığı 100'e yakın hizmetlerimizden sizlerde yararlanabilirsiniz. Onlarca ücretsiz web hizmeti ve profesyonel destekle sizleri daima daha ileriye taşımayı hedefliyoruz.
Tüm Yenilik ve Kampanyalardan Haberdar Ol
Son Yazılar
- Büyük Veri ile Tüketici Davranışlarının Tahmini 13 Aralık 2024
- Bulut Bilişim (Cloud) ile Maliyet Azaltan Şirketler 12 Aralık 2024
- Ağ Güvenliğinde Sektörel Trendler ve Öne Çıkan Teknolojiler 12 Aralık 2024