Bunlar hep Php için (For Döngüsü) – Not On Bir

S. O. S Aman Hocam yardım hocam kurban olam. S.O.S hipotenüs……….S.O. Amino asitler….. UML. Use Case.. Uçak ateş açtı. 20 canı kaldı.. Off manitayı çaldırlar. Suyum bitti. Gel su alalım.

Ve beyin uzaklaşak gider…

Neyse. Notumuza devam edelim.

Diyelim ki 1 den 100 a kadar. 1 den başlayarak 3’er artıra arttıra sayıları söylememiz istenilsin. Bunu php ile kodlamaya çalışalım.

Bunun çözümü şöyledir;

echo “1 4 7 10 13 16 …. “; Teker teker yazmayacağız dimi. Her defasında 3 ile toplamı kaç diye düşünmeyelim dimi? Sürekli 3 ile arttırıyoruz bir döngü oluşuyor burada.

Bu döngü ile ilgili elimizde olan bilgileri bir gözden geçirelim.

Kaçtan başlayacağız ?  1’den başlayacağız.

Ne zamana kadar döngü devam edecek 100 olana kadar.

Her defasında sayı ne kadar artacak, 3.

İşte bu bilgileri kullanarak  iki satırda diğeri gibi düşünmeden bu sorunun cevabına ulaşabiliriz.

Bunun çözümü: for(); dur.

for fonksiyonu 3 parametre almaktadır. İlk parametre ilk değer, ikinci parametre döngü koşulu üçüncü parametre ise arttırmadır. Biz zaten bunları demin söylemiştik hemen fonksiyonda yerine yazalım.

Ekran çıktısı şöyle olacaktır.

Ve böylelikle her defasında tekrar tekrar hesaplama yapmak zorunda kalmadık.

Bir de foreach döngüsü var. Bunu direkt örnek üzerinde anlatayım.

Ekran çıktısı:

foreach fonksiyonun yaptığını şöyle açıklayabiliriz. foreach fonksiyonuna girilen ilk degisken bir dizi olmak zorundadır. Bu fonksiyon ile dizinin tüm elemanlarını gezeceğiz. Dizinin elemanlarını gezerken o anki değerini ikinci değişkene atayacaktır.

Yani bir bakıma adım adım şöyle yapmaktadır.

İlk adımda $deger = $dizi[0]; yapmaktadır. Sonra kodun içerisinde yer alan komutu yapar. O komut ise echo komut bizim yazdığımızda. Bu da ekrana www. yu yazdırır.

Sonra tekrar döngüye devam eder. Bu sefer $deger = $dizi[1] yapar. Bu seferde ekrana deliyi yazdırır. Dizide gezilmeyen eleman kalana kadar böyle tüm dizi elemanları gezilerek, for eachin içerisindeki kod gerçekleştirilir.

Bir Cevap Yazın

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