Mobilhanem.com sitemiz üzerinden anlattığımız/yayınladığımız PHP Derslerimizde bu derste While & do while döngüsünü anlatacağım. Döngüleri programlama dillerinde bir işi belli bir koşula bağlı olarak tekrarlamak istediğimiz durumlarda kullanırız. Döngüler işimizi oldukça kolaylaştıran yapılardır. Döngüleri oluştururken koşulu, döngü değişkenini ve döngünün çalıştıracağı kod bloğunu seçmemiz bizim işimizi kolaylaştıracaktır. Döngü oluşturmayı görmeden önce artırma, azaltma, çarpma bölme gibi bazı kısa 4 işlemlerden bahsedelim.
Döngü Değişkeni Kullanımı (Toplama, Çıkarma, Çarpma, Bölme)
Döngü değişkenlerinin normal değişkenlerden bir farkı yoktur ama hızlı yazmak amaçlı bazı kısa kullanımlar yaparız. Bu kullanımları döngü içinde kullanmak şart değil istediğimiz yerde kullanabiliriz. Genel olarak kısa yazımları bir tablo içinde verelim ve birkaç örnek yapalım.
Uzun Kullanım | Kısa Kullanım | Açıklama |
$i = $i+1; | $i++; | Bir artır |
$j=$j+$sayi | $j+=$sayi; | $sayi değişkeni kadar artır |
$i = $i-1; | $i–; | Bir azalt |
$j=$j-$sayi | $j-=$sayi; | $sayi değişkeni kadar azalt |
$j=$j*$sayi | $j*=$sayi; | $j değişkeni ile $sayi değişkenini çarp sonucu $j ye ata |
$j=$j/$sayi | $j/=$sayi; | $j değişkenini $sayi değişkenine böl sonucu $j ye ata |
Örnekler:
$i=5; $i++; // 6 oldu echo $i."<br/>"; $i+=20; // 26 oldu echo $i."<br/>"; $i-=6; // 20 oldu echo $i."<br/>"; $i/=5; // 4 oldu echo $i."<br/>"; $i*=3; // 12 oldu echo $i."<br/>";
Şeklinde kullanabiliriz.
While Döngüsü Kullanımı
While döngüsünde bizim 1 adet koşulumuz bulunmalıdır ve bu koşula göre döngü içindeki kodlarımız tekrar etmelidir. While döngüsünün yapısı:
<?php while(KOSUL){ // koşul sağlandığı sürece yapılacak işlemler } ?>
şeklinde kullanırız. örnek üzerinden gidecek olursak:
örn: 5 sayısının faktoryelini while döngüsü ile bulalım.
$sayi = 5; $faktoryel = 1; while($sayi>=1) { $faktoryel*=$sayi; $sayi--; } echo "Faktoryel $faktoryel bulundu.";
Kodumuzu açıklayacak olursak:
- $sayi ve $faktoryel değişkenlerimizi tanımladık.
- $faktoryel değişkenimizin başlangıç değerine 1 vermemizin sebebi çarpmanın etkisiz elemanı 1 olduğu için. Toplam işlemi yapsak toplamanın etkisiz elemanı olan 0 kullanacaktık.
- döngümüz başladı koşulumuza baktık 5>=1 TRUE cevabını aldık o zaman döngüye girebiliriz dedik ve döngüye girdik.
- $faktoryel*=$sayi yukarıdaki tablomuzda vermiştik çarpma işlemi yapıyordu 1*5=5 değerini aldı $faktoryel değerimiz.
- $sayi değişkeninin değerini 1 azalttık faktoryel kuralımıza uymak için.
- Faktoryel kuralı : 5!=5*4*3*2*1; şeklindeydi. bizim kodumuzda bu kurala uygun olarak çarpma işlemini yapıyor.
- Daha sonra tekrar while kısmına geldik ve koşula tekrar baktık 4>=1 TRUE değerini aldık ve yine döngünün içerisine girip aynı işlemleri yaptık.
- koşulumuz FALSE oluncaya kadar döngümüz çalışmaya devam edecektir.
While kısmı bu kadardı arkadaşlar. Do While döngümüze bakacak olursak:
Do While Döngüsü Yapısı
do while döngüsünün while döngüsünden tek farkı döngüden önce kod çalışır daha sonra koşula bakılır. Yani koşul doğru olmasa bile kodumuz 1 kez çalışmış olur. Do While döngüsünün yapısı aşağıdaki gibi çalışır.
<?php do{ // kodlarımız }while(KOSUL) ?>
do while pek fazla kullanılan bir döngü tipi değildir ama bilmenizde tabiki fayda var. Küçük bir örnek yapacak olursak:
Ekrana 5 kere mobilhanem.com yazdıran programımızı do while döngüsü ile yapalım.
$sayi = 1; do{ echo "$sayi - mobilhanem.com <br/>"; $sayi++; }while($sayi<=5)
Kodumuzu açıklayacak olursak:
- $sayi değişkenimizi oluşturduk ve değerini 5 yaptık.
- do komutu ile kodumuzu 1 kere çalıştırdık.
- ekrana mobilhanem.com yazdık ve $sayi değerini 1 azalttık.
- daha sonra koşul sağlanıyor mu diye baktık koşulumuz sağlanmıyor olsa bile bir kere ekrana mobilhanem.com yazacaktı.
- koşulumuz true cevabını verdi ve tekrar do nun içine döndük ve yine aynı işlemleri yaptık.
- while içindeki koşul false durumuna gelene kadar kodumuz mobilhanem.com yazmaya devam edecek.
while ve do while ile örnekler
örn1: Bir sayının bölenlerini ekrana yazdıran programı while ve do while ile yapalım.
While ile:
$sayi = 10; $i = $sayi; while($i>=0) { // $i 0 dan büyük ise devam et if($sayi % $i == 0) { echo "$i ve -$i sayısı $sayi sayısının bir bölenidir.<br/>"; } $i--; }
Do While ile:
$sayi = 10; $i = 0; do { if($sayi % $i == 0) { echo "$i ve -$i sayısı $sayi sayısının bir bölenidir.<br/>"; } $i++; }while($i<=$sayi)
örn2: iki sayıdan büyük olanı bulup, büyük ile küçük arasındaki sayıları ekrana yazdıran programımızı kodlayalım.
While ile:
$sayi1 = 50; $sayi2 = 100; if($sayi1>=$sayi2) { $kucukSayi = $sayi2; $buyukSayi = $sayi1; }else { $kucukSayi = $sayi1; $buyukSayi = $sayi2; } while($kucukSayi!=$buyukSayi) { echo "$buyukSayi-"; $buyukSayi--; }
Do While ile
$sayi1 = 50; $sayi2 = 100; if($sayi1>=$sayi2) { $kucukSayi = $sayi2; $buyukSayi = $sayi1; }else { $kucukSayi = $sayi1; $buyukSayi = $sayi2; } do { echo "$buyukSayi-"; $buyukSayi--; }while($kucukSayi!=$buyukSayi)
Kodumuzu anlatacak olursak:
- öncelikle sayılarımızın hangisi büyük hangisi küçük bunları bulup $buyukSayi,$kucukSayi değişkenlerine atadık.
- Daha sonra döngüye girdik ve sayılardan istediğimiz birini seçtik. Ben $buyukSayi değişkenini $kucukSayi değişkenine eşit olana kadar azaltıp ekrana yazdırdım ve ikisi birbirine eşit olduğunda döngü bitti.
- sizde $kucukSayi değişkenini seçip $buyukSayi ya eşit olana kadar artırıp ekrana yazdırarak pratik yapabilirsiniz.
While ve do While döngüsü dersimizi burada sonlandırıyorum arkadaşlar. Bir sonraki dersimiz olan Php Dersleri – For Döngüsü dersimizde görüşmek üzere 🙂
Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı yine konu altından ve Mobilhanem Soru&Cevap bölümünden sorabilirsiniz.
Tüm Php Dersleri için tıklayınız..
96
bişi sorabilir miyim türkçe karakterleri konsolda nasıl düzgün gözüktürebiliriz acaba?
sayfanın en üstüne
header(“Content-type:text/html; charset=utf-8”);
kodunu eklersen sıkıntın kalmaz. Sayfanın karakter kodlamasınında utf-8 olmasına dikkat etmelisin.
iki değişkenim var değişkenlerden biri sıfır olduğunda diğer değişkendeki değeri nasıl yazdırabilirim.
$ds1 = 25
$ds2 = 0
sonuç = 25 olacak.
Yardımcı olursanız çok sevinirim. Teşekkürler
$a=25;
$b=0;
$b=$a;
echo $a;
$sonuc = $ds1.$ds2;
$sifirisil = str_replace(‘0’, ”, $sonuc);
echo $sifirisil;