25 Ocak 2012 Çarşamba

PHP Döngü ve Diziler 1


"do while" Donguleri


"do while" donguleri bir onceki konuda anlatilan "while" donguleri ile benzer islemleri yapmakla beraber bir onemli fark icermektedirler.Dongunun kontrol deyimi ,dongunun sonunda yer almaktadir.Bu durum dongu yapimizin, verdigimiz kosullar ne olursa olsun en az bir kere calisacagini gostermektedir.



do
{


Bu parentezlerin icindeki kod grubunu uygula


}


while (sartimiz dogrulaniyorsa); -- geriye don ve tekrar uygula





Yukarida acik sekilde goruldugu uzere dongumuz "sartlarimiz" ne olursa olsun "do" komutu ile baslayan dongumuzu bir kez isletecek ve "while" ile verilen satirdaki "sartlara" bakacaktir.Eger sart "dogruysa" (true) geriye donerek donguyu ilk yaptigi sekilde "do" ile basyalayan yerden itibaren bir kez daha isletecektir.


Hemen bir ornek verelim,


do
{


echo ("Kredi limitinizi astiginiz icin son aldiginiz urun sepetnizden cikarildi");
$AlisverisToplami = $AlisverisToplami - $SonAlinanUrun;
$SonAlinanUrun = $SonAlinanUrundenBirOncekiUrun;


}


while ($AlisverisToplami > $KrediLimiti);


Yukaridaki ornekte ozellikle bir hata yapilmistir.Hatamiz kodlarla ilgili degil mantikla ilgilidir.Gordugunuz gibi daha kullanicinin limiti asip asmadigina bakmadan ekrana bir uyari yazisini cikarilmasiydi.Belki musterimiz limiti asti belki asmadi.Ama bu sekilde "do while" dongusu ile yazdigimiz programlarda dikkatinizi cekmek istedigimiz nokta da iste buydu.Dongunun kontrol degiskeni dongu calismaya basladigi ilk seferden sonra kontrol edilir.Dolayisi ile her halukarda musteri ekranda bu uyariyi en az bir kere gorecektir.




Bu dongu yapisini o zaman nerede kullanacagiz?Simdi size bu dongu yapilarinin nasil ve nerede kullanilcagini biraz aciklamaya calisalim.Bir mantiksal ornekle baslayalim,


do
{
Bir sonraki kavsaga kadar arabayi sur;
}
while ($Kavsak != 10);


Ozet olarak eger PHP'nin sizin icin bir islemi kesin olarak yapmasini ve ayni zamanda bir kontrol mekanizmasi ile donatilmasini istiyorsaniz bu dongu tam sizin icin yaratilmis demektir :))


Bir baska ornekle bu dongunun kullanimini pekistirelim.simdi girdigimiz bir sayinin "asal" sayi olup olmadiginin arastirildigi bir uygulama yazalim.


1.Text editorunuzu acin ve asgidakileri yazin.


<HTML>
<HEAD></HEAD>
<BODY>
<FORM METHOD = POST ACTION="asalsayi.php">
Asalsayi olup olmadigini merak ettiginiz rakami giriniz:
<INPUT NAME="Sayi" TYPE="Text">
<BR>
<BR>
<INPUT TYPE=SUBMIT VALUE = "Buraya tiklayarak sayinin asal olup olmadigini ogrenin...">
<BR>
</FORM>
</BODY>
</HTML>


2.Bu dosyayi "asal.html" olarak kayit edin.


3.Yeni bir text dosyasi acip asagidakileri yazin.


<HTML>
<HEAD></HEAD>
<BODY>
<?php
$Bolunen = 2;
do
{


$Kalan = $Sayi%$Bolunen;
$Bolunen = $Bolunen + 1;
} while ($Kalan !=0 AND $Bolunen<$Sayi);


if (($Bolunen<$Sayi) || ($Sayi ==0)){


echo ("Sayiniz asal bir sayi DEGIL");
}


else {
echo ("Sayiniz ASAL bir sayidir.");
}


?>


</BODY>
</HTML>


4.Bu dosyayi"asalsayi.php" olarak kayit edin


5."asalsayi.html" dosyasini acip bir kez programi deneyin.

Hiç yorum yok:

Yorum Gönder