for örnekleri,
php döngüler,
php for,
php for döngüler,
php nedir,
php öğren,
php örnekleri
PHP - For Döngüsü
08:02:00 Unknown 1 Comments
İstenilen komutları istenilen sayıda çalıştırmak için kullanılır. Döngüyü kontrol etmek için döngü sayacı olarak adlandırılan bir değişken kullanılır. Bu genelde $i değişkenidir. Biz de burada döngü değişkeni olarak $i değişkenini kullanacağız.
Döngü değişkenleri döngünün sınırlarını belirlemek için kullanılır. Ayrıca döngü altında çalışan komutların bir kısmı olarak da kullanılabilir. Örneğin bir dizinin indisi yada ekrana yazılan mesajın bir bölümü olabilirler. Eğer döngünün sınırlar iyi belirlenmezse döngü; sonsuz döngüye, diğer bir ifadeyle kısır döngüye girebilir. Bu durumda tarayıcımız yanıt vermeyebilir.
for döngüsünün kullanımı şu şekildedir.
1
2
3
4
5
| <?php for ( /*başlangıç*/ ; /*koşul*/ ; /*artış miktarı*/ ){ // döngü altında çalışacak komutlar } ?> |
- Başlangıç: Döngünün kaçtan balayacağını belirtmek için kullanılır.
- Koşul: Döngü için belirtilen koşuldur. Bu koşul sağlandığı sürece döngü döner.
- Artış miktarı: Döngü değişkeninin kaçar kaçar artacağını belirtmek için kullanılır.
Örneğin 1'den 10'a kadar dönen ve ekrana Merhaba Dünya yazan bir döngü kuralım.
1
2
3
4
5
6
7
8
9
10
| <html> <body> <?php for ( $i =1; $i <=10; $i ++){ echo "Merhaba Dünya" ; echo "<br>" ; } ?> </body> </html> |
İlk örnek olduğundan örneği açıklayılım: Döngü değişkeni olarak $i kullanılmıştır. $i=1 tanımlamasıyla döngünün 1'den başlayacağı belirtilmiştir. $i<=10 koşulu ile döngünün, $i'nin 10'dan küçük yada 10'a eşit olduğu sürece döneceği belirtilmiştir. $i++ ifadesi ile de her döngüden sonra $i'nin 1 arttırılacağı belirtilmiştir.
Örneğimizin ekran çıktısı ise aşağıdaki gibidir.
Merhaba Dünya Merhaba Dünya Merhaba Dünya Merhaba Dünya Merhaba Dünya Merhaba Dünya Merhaba Dünya Merhaba Dünya Merhaba Dünya Merhaba Dünya |
Örnek: Ekranda alt alta 1'den 10' kadar olan sayıları yazdıralım.
1
2
3
4
| <?php for ( $i =1; $i <=10; $i ++) echo "$i<br>" ; ?> |
Not: Burada for altında çalışan tek komut olduğundan { } parantezlerini kullanmadık.
Aynı örneği iki farklı şekilde yazalım. Buradaki kullanım şekillerine dikkat ediniz.
1
2
3
4
5
6
7
| <?php for ( $i =1;; $i ++){ if ( $i >10) break ; // döngüyü kırmak için kullanılır. echo "$i<br>" ; // Dikkat: Bu komut if yapısına bağlı değildir. {} parantezleri yok. } ?> |
1
2
3
4
5
6
7
8
9
| <?php $i =1; for (;;){ if ( $i >10) break ; echo "$i<br>" ; $i ++; } ?> |
Örnek: Şimdiki örneğimizde 1 ile 100 arasındaki sayılardan 5'e bölünebilenlerin toplamını bulalım.
1
2
3
4
5
6
7
| <?php $toplam =0; for ( $i =1; $i <=100; $i ++) if ( $i %5==0) // $i'nin 5'e bölümünden kalan 0 ise $toplam = $toplam + $i ; echo "Toplam=$toplam" ; ?> |
Burada şunu hatırlatmakta fayda var. for altında iki komut görünüyor ve { } parantezlerini kullamamız gerekiyor gibi gelebilir. Ancak if yapısı $toplam=$toplam+$i; komutunu, for döngüsü de if yapısını tutmaktadır. Dolayısıyla { } parantezlerini kullanmak gerekmez. Basit bir ifadeyle { } parantezleri kullanılmadığında for, ilk noktalı virgüle (;) kadar olan komutları çalıştırır.
Aynı örneği farklı bir şekilde tekrar yapalım.
1
2
3
4
5
6
| <?php $toplam =0; for ( $i =1; $i <=100; $i ++) $toplam +=( $i %5==0)? $i :0; echo "Toplam=$toplam" ; ?> |
Burada ($i%5==0)?$i:0 komutundan koşula göre ya $i yada 0 döner.
Aslında hiç if yapısı kullanmadan sadece döngü değişkenini beşer beşer arttırarak da aynı işlemi yapabilirsiniz. Ancak o zaman $i sıfırdan başlatılmalıdır.
1
2
3
4
5
6
| <?php $toplam =0; for ( $i =0; $i <=100; $i +=5) $toplam += $i ; echo "Toplam=$toplam" ; ?> |
Yukarıdaki örnekte de görüldüğü üzere döngü değişkenini istediğiniz kadar arttırabilirsiniz.
Örnek: 7'den başlayarak üçer üçer 50'ye kadar yazdıralım.
1
2
3
4
5
| <?php for ( $i =7; $i <=50; $i +=3){ echo "$i<br>" ; } ?> |
Örnek: Bu örnekte ise döngümüz toplam 1000'den büyük olduğunda dursun. Döngü değişkeni de yedişer yedişer artsın.
1
2
3
4
5
6
7
8
9
| <?php $toplam =0; for ( $i =1;; $i +=7){ $toplam += $i ; if ( $toplam >1000) break ; } echo "Toplam=$toplam" ; ?> |
Gördüğünüz gibi döngüyü sonlandırmak için; koşul, döngü değişkenine bağlı değildir.
Azalan döngüler de yapabilirsiniz. Bunun için koşulu dikkatli yazmak gerekir. Aksi halde sonzuz döngüye girilebilir. Ayrıca döngü değişkeni azaltılmalıdır.
Örnek: Tanımlı olan metni küçükten büyüğe doğru başlık şeklinde yazdıralım.
1
2
3
4
| <?php for ( $i =6; $i >=1; $i --) echo "<h$i>Her şakanın yarısı gerçektir.</h$i>" ; ?> |
Örnek: 2010'dan 1920'ye kadar olan yılları açılır listeye ekleyelim.
1
2
3
4
5
6
| <?php echo "<select name='yillar'>" ; for ( $i =2010; $i >=1920; $i --) echo "<option value='$i'>$i</option>" ; echo "</select>" ; ?> |