Belirli bir koşul false döndürene kadar bir ifade bloğunu tekrar tekrar çalıştırmak için bir while kullanılır. Bu yazıda while döngüsü ile hazırlanan örneklere bakacağız. Bir while döngüsünün kullanılmasının asıl amacı döngünün nerede biteceğinin bilinmemesidir.
Aşağıdaki örneklerin bazıları for döngüsü ile de yapılabilir ancak döngü uzunluğu belli olmayan örnekleri sadece while ile yapmak mümkündür.
while yazım kuralı: PHP ile while döngüsünü yazmak için birden fazla kural bulunmaktadır. Bunlar aşağıdaki gibi gösterilebilir. En yaygın kullanım ilk sıradakidir.
yazım kuralı 1:
1 2 3 4 5 6 7 |
while(şart){ kodlar; } |
yazım kuralı 2:
1 2 3 4 5 6 7 |
while(şart): kodlar; endwhile; |
do…while yazım kuralı: PHP’de ayrıca while döngüsü ile benzer şekilde kullanılan do-while döngüsü mevcuttur. while döngüsünden tek fark ise do-while ile kodlar en az 1 sefer çalıştırılmasıdır.
1 2 3 4 5 6 7 |
do { kodlar; } while (şart); |
while Döngüsü Örnekleri
Gelelim konumuzun başlığı olan while döngüsü örnekleri ve çözümlerini yazmaya. Örnekler basitten karmaşığa doğru sıralanacaktır.
Örnek : 1-10 arasındaki sayıları ekrana yazdıran program kodunu yazalım.
1 2 3 4 5 6 7 8 |
<?php $i = 1; while ($i <= 10) { echo $i++; } |
yada daha süslü bir çıktı
1 2 3 4 5 6 7 8 9 |
<?php $i = 1; while($i <= 10) { echo "Sayı : $i <br>"; $i++; } |
Örnek: 0 ile 100 arasındaki çift sayıları toplayarak ekrana yazdıran programı PHP while kullanarak tasarlayınız.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php #tasarimkodlama.com #Soru: 0 ile 100 arasındaki çift sayıları toplayarak ekrana yazdıran programı PHP while kullanarak tasarlayınız. $sayac = 0; $toplam = 0; while($sayac<=100){ $toplam+=$sayac; $sayac+=2; } echo "0 - 100 arasındaki çift sayıların toplamı : $toplam"; |
Çıktı:
1 2 3 |
0 - 100 arasındaki çift sayıların toplamı : 2550 |
Örnek: 0-100 (100 dâhil) arasındaki sayılardan 5’e tam bölünenleri yazdıran programı tasarlayınız.
PHP Kodu:
1 2 3 4 5 6 7 8 9 10 11 |
<?php #tasarimkodlama.com #Soru: 0-100 (100 dâhil) arasındaki sayılardan 5’e tam bölünenleri yazdıran PHP programı $sayac = 0; while($sayac<=100){ if($sayac%5==0) echo $sayac." - "; } |
Çıktı:
1 2 3 |
0 - 5 - 10 - 15 - 20 - 25 - 30 - 35 - 40 - 45 - 50 - 55 - 60 - 65 - 70 - 75 - 80 - 85 - 90 - 95 - 100 - |
Örnek: Tanımlanan iki sayı değişkeni arasındaki sayıların ortalamasını bulup ekrana yazdıran programı tasarlayınız.
PHP Kodu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php #tasarimkodlama.com #Tanımlanan iki sayı değişkeni arasındaki sayıların ortalamasını bulup ekrana yazdıran programı tasarlayınız. #tanımlı değişkenler $t1=25; $t2=55; $ort=0; $toplam=0; $sayac = $t1; while($sayac<=$t2){ $toplam+=$t1; $sayac++; } $ort = $toplam/($t2-$t1); echo "$t1 ile $t2 arasındaki sayıların ortalaması: $ort"; |
Çıktı:
1 2 3 |
25 ile 55 arasındaki sayıların ortalaması: 25.833333333333 |
Örnek: Tanımlı olan sayının faktöriyelini bulan programı yazınız.
PHP Kodu:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php #tasarimkodlama.com #Tanımlı olan sayının faktöriyelini bulan programı yazınız. #tanımlı değişkenler $sayi=5; $fak=1; for($i=1;$i<=$sayi;$i++){ $fak=$fak*$i; } echo "5 sayısının faktöriyeli: $fak"; |
Çıktı:
1 2 3 |
5 sayısının faktöriyeli: 120 |
Örnek: 0 ile 100 arasındaki tek sayıları toplayarak ekrana yazdıran programı tasarlayınız.
PHP Kodu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php #tasarimkodlama.com #Soru: 0 ile 100 arasındaki tek sayıları toplayarak ekrana yazdıran programı tasarlayınız. #tanımlı değişkenler $sayac = 1; $toplam = 0; do{ $toplam+=$sayac; $sayac+=2; if($sayac > 100) break; }while(true); echo "0-100 arasındaki tek sayıların toplamı: $toplam"; |
Çıktı:
1 2 3 |
0-100 arasındaki tek sayıların toplamı: 25 |
Örnek: 0-100 (100 dâhil) arasındaki sayılardan 3’e veya 5’e tam bölünenleri yazdıran programı tasarlayınız.
PHP Kodu:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php #tasarimkodlama.com #0-100 (100 dâhil) arasındaki sayılardan 3’e veya 5’e tam bölünenleri yazdıran programı tasarlayınız. #tanımlı değişkenler $sayac=0; do{ $sayac++; if($sayac%3==0 || $sayac%5==0) echo "$sayac - "; }while($sayac<=100); |
Çıktı:
1 2 3 |
3 - 5 - 6 - 9 - 10 - 12 - 15 - 18 - 20 - 21 - 24 - 25 - 27 - 30 - 33 - 35 - 36 - 39 - 40 - 42 - 45 - 48 - 50 - 51 - 54 - 55 - 57 - 60 - 63 - 65 - 66 - 69 - 70 - 72 - 75 - 78 - 80 - 81 - 84 - 85 - 87 - 90 - 93 - 95 - 96 - 99 - 100 - |
Örnek : Dizi sonuna kadar dizi elemanlarını okuyup ekrana yazdırma
1 2 3 4 5 6 7 8 9 10 11 |
<?php $dizi = array(10,20,30,40,50,60,70,80,90); while (list($key,$deger) = each($dizi)) { echo $deger . PHP_EOL; } ?> |
Örnek : Dizideki değerleri current ve next işlevlerini kullanarak okuma
1 2 3 4 5 6 7 8 9 10 11 |
<?php $dizi = array(10,20,30,40,50,60,70,80,90); while ($deger=current($dizi)) { echo $deger; next($dizi);//sonraki öğeye geçer } ?> |
Örnek : while döngüleri en çok veritabanı okumalarında kullanılmaktadır. Veritabanındaki kayıtların uzunluğu belli olmadığı için while döngüsü ile tablonun sonuna kadar döngü ile hareket edilir. Aşağıdaki örnek kod parçasında veritabanındaki kayıtların okuması ile ilgili bir parça kod görünmektedir. while döngüsünün anlaşılması için sadece döngü kısmını koyuyorum.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php .... $sonuc = mysql_query("SELECT ad,soyad FROM ogrenciler");//veritabanından öğrenci tablosu okunuyor. while ($satir = mysql_fetch_array($sonuc, MYSQL_NUM)) {//tablodaki her kayıt bir satır olarak alınıyor. echo "Ad:" .$satir[0]; //kayıtlar ekrana yazdırılıyor. echo "Soyad".$satir[1]; } ?> |
1 Yorum