PHP: Akış Kontrol Deyimleri

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.

15 bir tek sayıdır.

Aynı sonucu aşağıdaki kod ile de alabiliriz:

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.

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:

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-19FF
20-29FD
30-39DD
40-49DC
50-59CC
60-69CB
70-79BB
80-89BA
90-100AA

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.

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:

Ö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.

 

Diğer Yazılarımız

Tüm Yazılarımız
PHP Akış Kontrol Deyimleri

Soru 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

Yazı hakkında ne Düşünüyorsunuz?