AÖF Soru Bankası

Web Sunucu ProgramlamaÜnite 4 Özeti

Akış Kontrol Yapıları

BİL206U-WEB SUNUCU PROGRAMLAMA

Ünite 4: Akış Kontrol Yapıları

Giriş

PHP, bir programın yürütme akışını kontrol etmek için bir dizi geleneksel programlama yapısını destekler. Döngülerde, tekrarlanacak blok bir koşul tarafından belirlenir. Bu tür koşullu döngü yapılarında otomatik olarak artan bir sayaç değişkeni söz konusu değildir. Bunun yerine koşulun döngü başlangıcında denetlenmesi söz konusudur PHP’de dört döngü yapısı vardır. Bunlar, belirli bir kod bloğunu birden çok kez yürütmek için kullanılır. PHP’deki döngüler aşağıda yer almaktadır:ve koşulun sağlanmadığı durumlarda döngü içerisindeki kod blokları hiçbir şekilde çalışmamaktadır. Bu yapının PHP’deki karşılığı while döngüsüdür. Bununla birlikte, koşulun döngünün sonunda denetlendiği yapılar da söz konusudur. Bu durumda ise koşul ne olursa olsun döngü içerisindeki koşul en az bir defa çalıştırılacaktır. Bu yapının PHP’deki karşılığı ise do..while döngüsüdür.

while ve for gibi döngüler, belirli kod bölümlerinin tekrar tekrar yürütülmesini desteklemekte iken; if/else ve switch gibi koşullu ifadeler ise, bir programın bazı koşullara bağlı olarak farklı kod parçalarını yürütmesine veya hiçbirini yürütmemesine izin verir.

Düşünün ki bilgisayar ekranında “Akış Kontrol Yapılarını Öğreniyorum!” ifadesini alt alta 10 kere küçükten büyüğe artacak şekilde bir yazı tipi ile yazdırmak istiyorsunuz. Bunun için nasıl bir yol izlerdiniz? Belirli bir kural dâhilinde tekrarlanan bu işlemi gerçekleştirmek için gerekli işlem sayısı kadar tekrar eden kod mu yazardınız? Yoksa bu kuralı karşılayacak bir özlü bir kontrol yapısını mı tercih ederdiniz? Bu bölümde iyi bir programcının uzak durması gereken en önemli problemlerden birisi olan gereksiz kod kalabalığına yol açmamak için akış kontrol yapıları döngüler ve kontrol yapıları temelinde ele alınacaktır.

Akış Kontrol yapıları

Bu bölümde akış kontrol yapıları içerisinde yer alan döngüler ve kontrol yapılarından bahsedilmiştir. Basit bir ifadeyle tanımlanacak olursa bir akış kontrol yapısı, uygulamanızdaki kod yürütme akışını kontrol etmenizi sağlar. Genel olarak, bir program satır satır sırayla yürütülür ve bir akış kontrol yapısı, genellikle belirli koşullara bağlı olarak bu akışı değiştirmenize izin verir. Akış kontrol yapıları, betiğinizin farklı girdilere veya durumlara farklı şekilde yanıt vermesini sağlayan PHP dilinin temel özellikleridir. Bu, komut dosyanızın kullanıcı girdisine, dosya içeriğine veya diğer bazı verilere göre farklı yanıtlar vermesine izin verebilir

Döngüler

Genellikle kod yazarken, aynı kod bloğunun belirli sayıda tekrar tekrar çalışmasını istersiniz. Bu nedenle, bir komut dosyasına neredeyse eşit birkaç kod satırı eklemek yerine döngüleri kullanabiliriz. Döngüler, belirli bir koşul doğru olduğu sürece aynı kod bloğunu tekrar tekrar çalıştırmak için kullanılır ve belirli bir düzen içinde tekrarlanan

kodların sadece bir defa yazılmasını sağlayarak gereksiz kod kalabalığından uzaklaşılmasını sağlar.

Döngüler sayaçlı ve koşullu döngüler olmak üzere iki grupta toplanabilir. Sayaçlı döngüler, döngü tarafından değeri otomatik olarak artırılan bir sayaç değişkeninin bulunması yapısından işlerken; koşullu döngüler ise döngünün sonlanması için belirli bir koşulun sağlanması esasına dayanır ve belirli bir indis değişkenine bağlı olarak işlem yaparlar.

• while döngüsü: Belirtilen koşul doğru olduğu sürece bir kod bloğunda döngü yapar. • do..while döngüsü: Bir kod bloğunda bir kez döngü yapar ve ardından belirtilen koşul doğru olduğu sürece döngüyü tekrarlar. • for döngüsü: Bir kod bloğunda belirtilen sayıda döngü yapar. • foreach döngüsü: Bir dizideki her öge için bir kod bloğunda döngü yapar

while döngüsü: En basit döngü biçimi while ifadesidir. Bu döngü, yalnızca koşulu doğruysa kod bloğundan geçer. Koşul doğru olduğu sürece döngüye devam eder. while döngüsü genel yapısı aşağıdaki gibidir:

while (koşul) { Döngü tarafından çalıştırılacak kod; }

while döngüsünde koşulun yalnızca her yinelemenin (döngü) başında kontrol edildiğini unutmayınız. İfade doğru olarak değerlendirilirse ifade yürütülür ve ardından ifade yeniden değerlendirilir (hala doğruysa, döngünün gövdesi yeniden yürütülür vb.). Döngü, ifade artık doğru olmadığında (yani, yanlış olarak değerlendirilir) sonlanır.

while ifadesinin kelime anlamı “iken”dir. Bu ifade döngünün içerisindeki kod alanını koşul sağlandığı sürece çalıştırır. Yapı kendi içerisinde otomatik olarak artan bir sayaç değerini barındırmayıp sayacın kullanılması gereken durumlarda kontrolü programcıya bırakmaktadır.

Döngüden çıkmada break anahtar sözcüğünü kullanabilirsiniz. Bu sayede bir döngüden zamanından önce çıkabilirsiniz. İsteğe bağlı olarak, break anahtar sözcüğünden sonra döngü adetini belirten bir sayı koyabilirsiniz.

Continue ifadesi, döngü koşulunun bir sonraki testine atlar. break anahtar sözcüğünde olduğu gibi, isteğe bağlı sayıda döngü yapısı düzeyi ile devam edebilirsiniz.

do..while döngüsü: do-while döngüsü, kod bloğundan sonraki koşulu kontrol etmesi dışında, while döngüsüyle aynı şekilde çalışır. Bu nedenle, her zaman kod bloğundan en az bir kez geçer.

Do ifade while (ifade)


Normal bir while ifadesinde olduğu gibi bir do/while ifadesinde de break ve continue ifadelerini kullanabilirsiniz. do/while ifadesi bazen bir hata durumu oluştuğunda bir kod bloğundan çıkmak için kullanılır.

Döngünün koşulu yanlış olduğundan, döngü içinde ne olduğuna bakılmaksızın döngü yalnızca bir kez yürütülür. Ancak bir hata oluşursa aradan sonraki kod değerlendirilmez. Bu döngünün noktalı virgülle bittiğini unutmayın.

for döngüsü: for döngüsü, bir kod bloğundan belirli sayıda geçmek için kullanılır. Üç parametre kullanır. İlk parametre bir sayacı başlatır ve her zaman döngüden önce bir kez yürütülür. İkinci parametre, döngünün koşulunu tutar ve her yinelemeden önce kontrol edilir. Üçüncü parametre, sayacın artışını içerir ve her yinelemenin sonunda yürütülür.

for deyimi while deyimine benzemekte; ancak while deyiminde farklı olarak sayaç başlatma ve sayaç işleme ifadelerini de eklemekte ve genellikle while döngüsünden daha kısa ve okunması daha kolaydır. Aşağıdaki örnekte 0’dan 9’a kadar sayan ve her sayıyı yazdıran bir while döngüsü yer almaktadır.

start ifadesi, for ifadesinin başında bir kez değerlendirilir. Döngü boyunca her seferinde ifade koşulu test edilir. Doğruysa döngünün gövdesi yürütülür, yanlış ise döngü biter. İfade artışı, döngü gövdesi çalıştıktan sonra değerlendirilir.

foreach döngüsü: foreach döngüsü, diziler arasında yineleme yapmak için kolay bir yol sağlar. foreach döngüsü giriş parametresi olarak dizi kullanır ve her bir tekrarda dizinin sıradaki değerini $deger değişkenine aktarır.

Bir foreach ifadesinin yapısı şöyledir:

foreach ($dizi as $deger) { Döngü tarafından çalıştırılacak kod; }

Döngüler, belirli bir koşul doğru olduğu sürece aynı kod bloğunu tekrar tekrar çalıştırmak için kullanılır.

Döngüler iç içe kullanabilir olduğundan; en içteki döngü, en hızlı dönen döngüdür.

Kontrol Yapıları (Koşullu İfadeler)

PHP’de diğer dillerde olduğu gibi koşullu ifadeler kullanılır. Koşulların sağlandığı durumlarda belirli işlemler, sağlamadığında başka işlemler gerçekleştirilir. Kontrol yapılarına bir örnek olarak alışveriş sitelerinin ödeme aşamaları verilebilir. Alışveriş sitesinde eğer ödeme yapılmışsa kargo işlemleri başlar. Bu arada ödeme sırasında karttan ödeme yapılacaksa kartın bakiyesinin yeterli olup olmadığına göre işlemler farklı yönlere gidebilir. PHP’de if ve switch komutları kontrol yapılarıdır.

if-else: Bir koşul ifadesinde koşulun doğru ya da yanlış olması gibi iki durum söz konusudur. Bu durumlar için if

ifadesi kullanılır. if else ile ifade etmek gerekirse koşul sağlanıyorsa if, sağlanmıyorsa else bloğu içindeki kodlar çalışır.

if-else-if: Kimi zaman, birden fazla koşul kullanılması gerekebilir. Bu durumlarda ise if-else-if yapısı kullanılır. if-else-if kullanımı bir anlamda switch-case yapısına benzer.

switch-case: switch-case komutu önceden belirlenen koşullara göre hareket etmeyi sağlar. break ve default komutlarıyla kullanılır. break komutların yukarıdan aşağıya akışında koşulların sağlanması durumunda diğer koşulları kontrol etmez ve switch komutundan çıkar. default ise if komutundaki else gibi girilen değer önceden belirlenmiş şartların hiçbirine uymuyorsa çalıştırılacak komutları içerir. Aşağıdaki örnekte tutulan takıma göre ekrana seçenekler gelmektedir. takim değişkenine hangi takım girilmişse ekrana tuttuğunuz takım şeklinde ekrana tutulan takım basılmaktadır. Eğer hiçbir Galatasaray, Fenerbahçe ya da Beşiktaş’tan farklı bir takım seçilmişse default (Varsayılan) değer olarak Tuttuğunuz takım ne Galatasaray ne Fenerbahçe ne de Beşiktaş ifadesi ekrana gelmektedir.

Bu ünitenin sorularını uygulamada çözŞıklar, doğru cevaplar ve süreli sınav modu AÖF Soru Bankası uygulamasında