Php Programlama Döngüler

php-donguler

Php Döngüler

Php döngüler tıpkı karar yapılarına benzer bir koşul belirtilir. Tek farkı karar yapılarında koşul bir kere denetleniyor ve sağlanıyorsa kodlar çalıştırılıyor. Döngüler de bu koşul sağlandığı sürece döngü içerisine yazılan kod sürekli çalıştırılır.

Karar yapıları hakkında fikir sahibi olmak için Php Programlama Karar Yapıları başlıklı yazıya göz atmanızı öneririm.

Php döngüler tekrarlaması gereken işlemler için kullanılır. Döngüler 4 çeşittir. Bunlar: for(), foreach(), while() , do while()

For Döngüsü

For döngüsü, php döngüler arasında sıklıkla kullanılan bir döngüdür. Belirli değerler arasında artarak ya da azalarak çalışır.

For döngüsü 3 adet parametre alır. 

  1. Parametre döngünün başlangıcını ifade eder.
  2. Parametre koşulu ifade eder.
  3. Parametre ise arttırma ya da azaltmayı ifade eder.

Örnekleri incelemeden önce operatörler hakkında bir fikriniz yoksa  Php Programlama Operatörler yazısına göz atmanızı öneririm. Operatörler oldukça sık kullanılan işaretlerdir. 

Örnek kullanım:

1’den 10’kadar yazdırma.

<?php 
for($i = 1; $i <= 10; $i++){
echo $i." ";
}
?>

Yukarıda basit bir örnek ile for döngüsünde 1’den 10’a kadar yan yana yazdırma kodu verilmiştir. $i = 1; döngümüzün başlangıç değeridir. $i <= 10; döngümüzün koşuludur. $i++ döngümüzün davranışını belirler artarak mı yoksa azalarak işlem yapılacağını son parametrede belirleriz. 

Örnek kullanım:

10’dan 1’e kadar geriye yazdırma.

<?php 
for($i = 10; $i >= 1; $i--){
echo $i." ";
}
?>

Yukarıdaki bu basit örnek ise ilk örneğin tam tersidir. Döngüde artırma yapılacağı gibi azaltma yapılarak da işlem yaptırılabilir.

Örnek Kullanım:

For döngüsü ile faktöriyel hesaplama.

<?php
$sayi = 5;
$sonuc = 1;
for($i = 1; $i <= $sayi; $i++){
$sonuc = $sonuc * $i;
}
echo $sayi." Faktoriyel => ". $sonuc;
?>

Yukarıdaki örnekte 5 faktöriyel hesaplanıp ekrana “5 Faktöriyel => 120” sonucu yazdırılacaktır.

Eğer yapılacak işlemler tek satırdan oluşuyor ise süslü parantez { }kullanılmayabilir.

Örnek kullanım:

<?php
for ($i = 1; $i <= 10; $i++) echo $i." ";
?>

Yukarıdaki gibi tek satır olarak yazılabilir ancak karışıklık olmaması için ben süslü parantezler { } ile birlikte yazmayı tercih ediyorum.

Foreach Döngüsü

Php döngülerden bir tanesi de foreach() döngüsüdür. Bu döngü diziler ile kullanılan döngüdür. Dizilerin anahtar ve değerlerini elde etmek için kullanılır. Foreach döngüsünde for döngüsündeki gibi bir başlangıç ve bitiş değeri belirlemeye gerek yoktur. Bu döngü dizi eleman sayısı kadar tekrarlanır. 

Diziler hakkında kısaca bilgi vermek gerekirse. Diziler birden fazla değeri indis numaraları ile içerisinde saklayan kalıplardır.

İki çeşit kullanımı vardır.

Örnek kullanım:

<?php 
$dizi = array("Ali","Veli","Hasan","Hüseyin");

/* Birinci kullanım şekli */
foreach($dizi as $deger){
echo $deger."<br />";
}

/* İkinci kullanım şekli ise dizi indis numaralarına erişerek*/
foreach($dizi as $indis => $deger){
echo "$indis .sırada $deger var </br>";
}
?>

Yukarıdaki birinci kullanımda dizi elemanlarını alt alta yazdırdık. İkinci kullanımda ise dizi elemanlarını indisleriyle birlikte alt alta yazdırdık. 

While Döngüsü

While döngüsü çoğunlukla dosya okuma ve veri tabanı işlemlerinde kullanılır. Tıpkı diğer döngüler gibi koşul doğru kadar tekrar tekrar çalışır. Eğer döngü süresinde artırılması ya da azaltılması gereken bir değer varsa bu kesinlikle unutulmamalıdır. Unutulduğu takdirde kısır döngü meydana gelir ve döngü sürekli çalışır.

Örnek kullanım:

While döngüsü ile 1’den 10’a kadar alt alta yazdırma.

<?php 
$sayi = 1;
while($sayi <= 10){
echo $sayi. "<br/>";
$sayi++;
}
?>

Yukarıdaki kodu incelediğimizde for döngüsündeki örnekteki gibi 1’den 10’a kadar sayıları alt alta yazdırdık. Burada dikkat edilmesi gereken en önemli nokta $sayi değişkenini arttırmayı unutmamalıyız. Arttırmayı unuttuğumuz takdirde koşul hiçbir zaman gerçekleşmeyeceği için sonsuz döngü oluşur.

Örnek kullanım:

While döngüsü ile 1’den 10’a kadar olan sayıları toplama.

<?php 
$sayi = 1;
$sonuc = 0;
while ($sayi <= 10){
$sonuc += $sayi;  // operatörlerden hatırlayacağımız gibi bunun anlamı $sonuc = $sonuc + $sayi; 'dır.
$sayi++; // sayi değişkenimizi artırmayı unutmuyoruz.
}
echo "Toplam = $sonuc";
?>

Örnek kullanım:

<?php 
$sayi = 5;
$sonuc = 1;
while($sayi >= 1){
$sonuc *= $sayi;
$sayi--;
} 
echo "Girilen sayının faktoriyeli = $sonuc";
?>

Yukarıdaki örnekte while döngüsünde faktöriyel hesabını azaltma işlemi yaparak uyguladık kodu inceleyerek fikir sahibi olabilirsiniz.

Do While Döngüsü

Do while döngüsü diğer döngülere göre biraz daha farklı çalışmaktadır. For ve while döngülerinde koşul sağlandığında döngü çalıştığını biliyoruz. Do while diğer döngüler gibi koşul sağlandığında çalışıyor ancak diğer döngülerden bir farkı var. Do while döngü koşul sağlansa da sağlanmasa da döngü en az 1 defa mutlaka çalışır. Do while döngüsünün en az 1 defa çalışmasının sebebi ise koşul döngünün sonunda kontrol edildiği içindir. Do while döngü çok kullanılan bir döngü değildir.  Herhalde bu döngüyü en son okulda döngüler konusunu öğrenirken kullanmışımdır.

Örnek kullanım:

<?php 
$sayi = 1;
do{
echo $sayi;
$sayi++;
}while($sayi <= 5);
?>

Yukarıdaki örnekte $sayi değişkeni 5’ten küçük ve eşit olana kadar döngü çalışacaktır.

Örnek kullanım:

<?php
$sayi = 10;
$sonuc = 0;
do{
$sonuc += $sayi;
$sayi--;
}while($sayi >= 1);

echo $sonuc;
?>

Yukarıdaki kodu incelediğimizde döngüyü azaltarak toplama işlemi yaptırdık. Dikkat etmemiz gereken önemli nokta while($sayi >=  1); bu satırın altında kod yazama devam edeceksek mutlaka noktalı virgül (;) koymalıyız. Eğer noktalı virgül koyması unutursanız Parse error: sytax error şeklinde yazım hatası verecektir.

İlk do while örneğine dikkat ederseniz while($sayi <=5) satırında noktalı virgül kullanmama nedenim alt satırda kod yazmaya devam etmedim.

Döngüler içerisinde kullanabileceğimiz ve döngünün akışını değiştiren iki terim vardır. Bunlar continue ve break terimleridir.

Continue ve Break Terimleri

Bu terimler pek sık kullanılır mı açıkçası bu konuda bir fikir sahibi değilim ama ben çok az kullanmışımdır. Kısaca bu terimleri açıklamak gerekirse. 

Continue

Continue terimi döngü içerisinde bir koşul belirtilirse ve bu koşul sağlandığında bir işlem yapılmaması isteniyorsa kullanılıyor. Yani o koşul sağlandığında bir işlem yaptırmadan döngü kaldığı yerden çalışmaya devam ediyor.

Örnek kullanım:

<?php 
for ($sayi = 0; $sayi <= 10; $sayi++){
if($sayi %2 ==0){
continue;
}
echo $sayi. "<br/>";
}
?>

Yukarıdaki kodu incelediğimizde 1’den 10’a kadar olan sayıların içerisindeki tek sayıları ekrana yazdırdık. Döngü içerisinde belirtmiş olduğumuz koşulda eğer sayı çift ise hiçbir işlem yapmadan döngünün devam etmesini söyledik. Böylece ekrana sadece tek sayılar yazdırıldı.

Break

Break terimi döngü içerisinde bir koşul belirtilirse ve bu koşul sağlandığında döngüyü sonlandırmak için kullanılır. Yani o koşul sağlandığında döngü durdurulur ve program akışı döngü dışından çalışmaya devam eder.

Örnek kullanım:

<?php 
for($sayi = 1; $sayi <= 20; $sayi++){

if($sayi % 2 == 0){
echo $sayi."<br/>";
}

if($sayi > 10){
break;
}

}
?>

Yukarıdaki örneği incelediğimizde döngümüz normalde 1-20 arasındaki çift sayılır ekrana yazdıracaktır. Ancak ben 1-10 arasındaki çift sayıları bulmak istiyorum ve gerisi beni ilgilendirmiyor. Bu durum da döngü içerisinde bir koşul belirleterek sayı değeri 10 dan büyük ise döngünün çalışmasını break komutu ile sonlandırıyorum ve ekrana 1-10 arasındaki çift sayılar yazılmış oluyor.

Php döngüler konusu bu kadar örnekleri deneyerek mantığı oturtmanızda fayda vardır. Php döngüler oldukça sık kullanılan php özelliğidir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir