PhP Döngüler


Döngüler
Konuya bir örnekle başlayalım.
Ekranda alt alta 5 defa PHP Öğreniyorum cümlesini küçükten büyüğe doğru artan yazıtipi büyüklüğü ile yazdıracağız.

PHP Öğreniyorum!
PHP Öğreniyorum!
PHP Öğreniyorum!
PHP Öğreniyorum!
PHP Öğreniyorum!

< ?php
echo "";
echo "
PHP Öğreniyorum!
";

echo "";
echo "
PHP Öğreniyorum!
";

echo "";
echo "
PHP Öğreniyorum!
";

echo "";
echo "
PHP Öğreniyorum!
";

echo "";
echo "
PHP Öğreniyorum!
";


? >
Örneğimizde olduğu gibi belirli bir kural dahilinde tekrarlanan işlemlerde, işlemi gerçekleştiren kodun da hemen hemen tamamının işlem sayısı kadar tekrarlanması zorunluluğu ortaya çıkmaktadır. Bu da, iyi bir programcının uzak durması gereken en önemli problemlerden birisi olan gereksiz kod kalabalığına yol açmaktadır.Bu gibi durumlar için geliştirilen programatik yapılara döngü adı verilir. Döngüler, belirli bir düzen içinde tekrarlanan kodların sadece bir defa yazılmasını sağlarlar.Genel olarak döngüleri iki başlık altında sınıflandırabiliriz. Bunlardan ilki, döngü tarafından değeri otomatik olarak artırılan bir sayaç değişkeninin bulunduğu sayaçlı döngülerdir.
Diğer tür olan koşullu döngülerde ise döngünün sonlanması için belirli bir koşulun sağlanması söz konusudur.Belirli bir indis değişkenine bağlı olarak işlem yapan döngü türleridir. PHP’deiki tür sayaçlı döngü vardır: Fordöngüsü ve Foreachdöngüsü.Fordöngüsünde indis değişkeninin doğrudan döngünün tanımlama bloğu içersinde belirtilmesi gerekir. Foreachdöngüsünde ise indis değişkeninin yerini bir dizi alır. Dizinin kendi yapısında bir indis değeri zaten tanımlı olduğundan, Foreachyapısında sayaç olarak bu indis değerinin kullanıldığı söylenebilir.ForDöngüsü
Genel yapısı aşağıdaki gibidir:
For(Başlangıç değeri; Sınır koşulu; Artış miktarı)
{
Döngü tarafından çalıştırılacak kod;
}

Örnek olarak, daha önce yaptığımız “PHP Öğreniyorum!” uygulamasını bu kez Fordöngüsünü kullanarak gerçekleştirelim.
< ?php
for ($i=1; $i<=7; $i++)
{
echo "";
echo "
PHP Öğreniyorum!
";

}
? >

Diğer bir örnek, bilinen faktöriyel işlemini gerçekleştirecek döngünün tanımlanmasıdır.
< ?php
$sayi=8; $faktoryel=1;
for ($i= 1; $i<= $sayi; $i++)
{
$faktoryel= $faktoryel* $i;
}
echo $faktoryel;
? >
Örnekte, 8 sayısının faktöriyeli, yani 8×7×6×5×4×3×2×1 çarpımı hesaplanmaktadır.

içi içe üç Fordöngüsünden oluşan bir yapıda simülasyonunu gerçekleştirelim.

< ?php
for ($yuzler= 0; $yuzler<= 9; $yuzler++)
{for ($onlar= 0; $onlar<= 9; $onlar++)
{for ($birler= 0; $birler<= 9; $birler++){echo "$yuzler$onlar$birler
“;}

}
}
? >

Biraz daha karmaşık bir örneği şu şekilde geliştirelim:
A2+B2=C2
eşitliğini sağlayan pozitif tamsayılara “Pisagor Üçlüleri” adı verilir.

Örneğin
32+42=52
gibi. Bu durumda (3,4,5) bir Pisagor üçlüsüdür.
Öyle bir kod yazalım ki, 1 ile 99 arasındaki bütün Pisagor üçlülerini bulsun ve sonuçları ekranda biçimlendirilmiş bir şekilde yazsın.

< ?php
echo "PisagorÜçlüleri";
echo "
";
$kareler="2";
$sayac=1;
for ($a = 1; $a <= 99; $a++)
 {
      for ($b = 1; $b <= 99; $b++)
          {
              for ($c = 1; $c <= 99; $c++)
                 {

if ($a*$a+$b*$b==$c*$c and $a<$b)
{
echo $sayac++,"). $a",$kareler," + $b",$kareler," = $c",$kareler,"
";

                                                     }
                                        }
                             }
                 }
?  >

ForeachDöngüsü
Genel yapısı aşağıdaki gibidir:
Foreach($dizi as $deger)
{
Döngü tarafından çalıştırılacak kod;
}
Giriş parametresi olarak dizi kullanan Foreachdöngüsü, her bir tekrarda dizinin sıradaki değerini $degerdeğişkenine aktarır.

<  ?php
$dizi=array("bir","iki","üç","dört");
foreach($dizias $deger)
{
echo "$deger
";

}
? >

bir
iki
üç
dört



< ?php
$a = array();
$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "c";
$a[1][1] = "d";
foreach($a as $v1) {
foreach($v1 as $v2) {
echo "$v2
“;}
}
? >


a
b
c
d
Burada $v1 değişkeni $a dizinin birinci ve ikinci boyutunu oluşturan iki diziyi temsil etmektedir. $v2 değişkeni ise bu tek boyutlu dizilerin terimlerini gösterir.








Öne Çıkan Yayın

Hibernate Nedir?

Hibernate Nedir? Veritabanı işlemlerinde bize yardımcı olan, obje kavramından uzaklaşmadan işimize devam etmemizi sağlayan bir yapı. Artık...