Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 14

3.5.

Program Denetimi
Belli bir koula gre programn ileyiinin deitirilmesi ilemini denetim
komutlaryla yaparz.

Programn almas esnasnda birka farkl alternatif durum arasndan seim yapmamz, baz
komutlar birden fazla tekrarlatmamz, mantksal kararlar vermemiz ya da istenmeyen hatalar
nlemek amacyla programmza mdahale etmemiz gerekebilir. Bu gibi durumlar kontrol altna
almak amacyla kontrol yaplarn ve dngleri kullanyoruz. arta bal olarak ilem yapmak iin
if ve switch ifadelerini, dngler iin ise for ve while ifadelerini kullanyoruz. imdi bunlar
srayla ve rneklerle inceleyelim.

3.5.1. If Else Kullanm


Bu deyimin kullanm aadaki ekildedir:

if ( koullar )
{
koullar doru ise yaplacak ilere ilikin komutlar
}
else
{
koul salanmamsa yaplacak ilere ilikin komutlar
}

imdi yukarda anlatlanlar bir programda uygulayalm:


Bu program altrldnda say1 ile say2 eit olmad iin sizin de tahmin edeceiniz gibi
ekran kts aadaki gibi olacaktr:

Else, kelime manas olarak deilse manasna gelmektedir. If komutu ile else komutu birlikte
kullanlr. Eer art olumamsa elseden sonraki ilem yrtlr.

imdi if else kullanarak daha nce rendiimiz mantksal AND(&&) parametresini de ieren
bir rnek yapalm.

Yukardaki programda sifre=1453 , uye =Fatih deerini almtr. 4. satrda sifre ve uye deerleri
kontrol edilip her ikisinin de doru olmas durumunda ekrana Doru Giri Yaptnz yazmaktadr.

Programda her iki deer de doru olduu iin giri doru olacaktr.Fakat siz iki ve nc satrdaki
sifreyi veya uye deerini deitirerek Giri Hatal mesaj verdirebilirsiniz.

3.5.2. Else if
kiden fazla koulun olduu durumlarda Else if kullanlr. Eer deilse manasna gelen bu
ikili btn artlar kontrol ettikten sonra kalan son art Else deyip icra eder.

Bu programda ihtiml vardr: Ali byk, Osman byk veya yalar eit. Birinci if deyimi ile
(5.satr) Alinin byk olma durumunu, ikinci if deyimiyle (9.satr) Osmann byk olma durumunu
sorgulattk. kisi de deilse (13. Satr) son ihtimli yazdrdk. Yukardaki program altrld
zaman birinci art deil, ikinci art gerekletii iin ekrana Osman Byk ifadesi yazdrlr.

Sizler de 2. satrda bulunan $Ali_yas deikenine farkl deerler vererek dier iki ihtimale gre
ekran ktsnn deiimini uygulaynz.
imdi rneimizdeki ihtiml saysn artrarak farkl bir rnek daha zelim:

Bu rnekte rencinin ald puana gre ekrana notunu yazdran program yapalm.
Puan-Not tablosu aada verilmitir.

PUAN NOT
0-24 SIFIR
25-44 BR
45-54 K
55-69
70-84 DRT
85-100 BE

Yukardaki programmz alt zaman ekran kts aadaki ekilde olmaktadr:

Sizler programmzn 2. satrnda bulunan $PUAN deikenine puan-not tablosundan faydalanarak


deiik deerler atayarak puana gre notun deiip deimediini kontrol edin.

** $PUAN>85 ibaresi ile $PUAN>=84 ibaresi ayn koulu ifade etmektedir.


Else if komutunun pekimesi asndan son bir rnek olarak say bulma program yazalm.

Kiinin tuttuu sayy Daha Byk Say veya Daha Kk Say gibi ynlendirme mesajlaryla
bulmaya alan ve tutulan say tahmin edilen sayya eit olduunda da TEBRKLER mesajyla
tahmin edilen sayy ekrana yazdran program yazalm.

Yukardaki rnei, bir sonraki modln konusu olan form yardmyla yaparsanz daha kullanl bir
uygulama olacaktr. Bu rnekte 3.satrdaki tahmin deerine say deerinden dk ve yksek deerler
atayarak programn almasn kontrol edebilirsiniz.

Bu haliyle program altnda ekrana aadaki gibi bir grnt gelecektir.

Ekran ktsn incelediimizde TEBRKLERSAYI ibaresinden sonra birletirme operatr (.)


kullanlp boluk braklp sonra tekrar birletirme operatr (.) kullanlp tutulan say yazlmtr.

Kare iine alnm iki noktann arasnda bulunan ift trnaklar boluk brakmak amal kullanlmtr.

3.5.3. if Deyimi le Kullanlan Komutlar


Baz zamanlar if deyimiyle baz komutlar kullanrz. Bu komutlar yeri geldiinde formdan gelen
bilgilerin derlenmesinde ie yarayabilecei gibi deikeni kontrol etmek iin de kullanlrlar.

Bu komutlarn grevlerinin anlalmas belki tanmdan biraz zor olabilir. Ancak rnek
uygulamalarla ne sylemek istenildii anlalacaktr.

Konuyu fazla uzatmamak iin bu komutlar grevleri ile birlikte aada yazp sonra rnek
uygulamaya geelim.

isset() : Bu komut bir deiken tanmnn ierisinde deer olup olmadn rapor
eder.
empty() : Buda isset ile ayn ii grr esasnda. Ancak snamay tersten yapar. isset()te dnen
deer true ise emty() de ayn deer false olarak dner.

Yukardaki rnekte $sifre deikeni tanmlanmam. Dolaysyla byle bir deiken ve ierii de yok.
If komutuyla 5. satrda bu kontrol yaptmzda deer olmad iin ekrana Deikenin deeri
yok. yazd.

Esasen burada yaplan ilem deikenin olup olmad deil, deikenin iinde deer olup
olmaddr.

imdi de ayn rnei deiken tanmlamas yaparak yazalm.

Program altrldnda ekran grntmz, deiken tanmlamas yaptmz iin Deiken


deeri var. eklinde deimitir.
Php dilinde nlem(!) iareti tersi manasna gelir. Aada gsterildii gibi biri dierinin
yerine kullanlabilir.

if(!isset($sifre))==if(empty($sifre))
if(!empty($sifre))==if(isset($sifre))
Siz yukardaki rnekleri empty komutu ve nlem(!) iaretini kullanarak farkl
kombinasyonlarda deneyebilirsiniz.

is_integer() : Bu komut deikenin tamsay olup olmadn snar ve True


veya False deeri dndrr.

rnek uygulama:

Yukardaki rnekte iki sayy toplayp ortalamasn aldrdktan sonra ortalamann tamsay olup
olmadn kontrol ettiriyoruz. rneimizde ortalama 17/2=8,5 kyor. Dolaysyla tamsay deil. Bu
nedenle program altnda ekran grnts aadaki gibi olacaktr.
3.5.4. Switch Kullanm
Tre karl anahtar olan switch deyimi if deyimi gibi grev yapar. Switch, seilmi
bir deikenin belli artlardan hangisine uygun olduuna bakp o art iin belirlenmi ilemleri
gerekletirir.

Switch ile yaptklarmzn hepsini if ile yaparz ama if ile yaptmz her eyi switch deyimi ile
yapamayz.

rnek bir uygulama ile switch deyiminin kullanmn inceleyelim:

Seim 1 2 3 4 5 6 7
Gnler Pazartesi Sal aramba Perembe Cuma Cumartesi Pazar
Yukardaki tabloda hangi sra numarasn seersek o numaraya karlk gelen gn ekrana
yazdran program yazalm.

Secim=5 olduu iin ekrana Cuma yazacaktr.

Siz $secim deikenine atanan numaray deitirerek) ekranda (2. Satrda) farkl gnlerin
kmasn salayabilirsiniz. Seim aral [1-7] dnda bir say seildiinde byle bir gn olmad
iin default deer olarak YANLI SEM gzkecektir.
rnek: ki farkl deikene atlm saylar seime gre toplama, karma, arpma veya blme
ilemine tabi tutan sonucu ekrana yazdran program yazalm.

Bu ilem olarak arpmay setiimiz (5.satr) iin program 18.satr ile 21. Satr aras alp
sonlanmtr.21.satrda bulunan break komutu switch ten kmay salar.

Programn almasndan sonraki ekran grnts aadaki gibidir.


3.5.5. Dngler
Bir ilemin birden fazla tekrarlanmas durumunda dngler kullanlr. Dngdeki mantk
balang ve biti deeri belli olan ilemin istenilen aralklarda tekrarlanmasdr.

lkretimde yaptmz gibi defterimize admz 100 kez yazmak, 1den balayarak ikier
ikier 200e kadar yazmak veya 100den geriye doru beer beer yazmak birer basit dng rnekleri
olarak verilebilir.

***Dng says iin balang-biti ve art deerleri nemlidir.1 den 100e kadar olan bir ilemde
art miktar 2 olarak ayarlanrsa dng iindeki komutlar 50 defa altrlacaktr.

Dng ilemleri for ve while komutlaryla yaplr.

3.5.5.1. for Dngs

For dngsnn kalb aadaki gibidir:


for (dng deikeni=balang deeri; art; deiim miktar)
{
yaplacak ilemler
}

rnek: Ekrana 8 defa MERHABA PHP yazan program yazalm.

Bu programda $i deikeni saya deikenidir. Programn 2.satrnda grdnz gibi $i deeri 1den
balam, kk eit 8 oluncaya kadar deerini birer birer artrmtr.

Her artrma ileminde ise ssl parantez arasndaki komutu altrmtr. Bu ilemi toplam 8
defa yapmtr. Dolaysyla programn almasndan sonraki ekran grnts aadaki gibi olmutur.
rnek: 1den balayarak 10 a kadar ekrana alt alta yazdrmak istiyoruz.

Dng ilemlerinde bir tane saya olmak zorundadr. Bu sayacn grevi her seferinde
dngnn kanc defa ilendiini tutmaktr. Bu rnekte kullanlan $i sayac ayn zamanda
4. Satrda ekrana yazlmaktadr.

imdi yukardaki iki rnei birletirip bir rnekte gsterelim.

rnek: Ekrana 1den balayp sra numaras vererek ekrana 10 defa MERHABA PHP
yazdralm.

1.MERAHABA PHP
2.MERAHABA PHP
.
.
.
.
.
10.MERAHABA PHP gibi
Programn 5. satrnda hem saya hem de metin birletirme operatr kullanlarak dngye girmi
ve ekrana yazlmtr.

Programn almas aadaki ekilde olmaktadr:

Biz dnglerin iine ayn zamanda html etiketlerini de ekleyebilir, onlar dnglerle beraber
kullanarak ok deiik rnekler yapabiliriz.

rnek: Ekrana 900 pix uzunluunda alt alta 10 tane izgiyi dng yardmyla izdirelim.

Yukardaki program altrdmz zaman ekrana alt alta 10 tane 900 pixel geniliinde krmz
renkte izgi izer. Programn alma grnts aadaki gibi olmaktadr.
rnek: stenilen satr ve stun says kadar tablo oluturan ve her bir hcreye top resmi ekleyen
program yaznz.(Top.jpg resmini program altrdnz dizine ekleyiniz, resmin boyutlarn
100x100 pixel olarak ayarlaynz.)

Yukardaki rnekte satr say deerini 4, stun say deerini 3 verelim. Tek tablo oluaca iin 4.
Satrdaki tablo balang etiketi dng dnda kalyor.

Burada i ie iki tane dng kullandk. Dtaki dng satr, iteki dng stun oluturmak iin
kullanlacaktr. nce, dtaki dng ile satr oluturulmakta, daha sonra her satrda ka tane stun
varsa iteki dng yardmyla o kadar stun oluturulmaktadr. Her satrdaki stn oluturma ilemi
bitince dtaki dng devreye girip bir sonraki satr oluturmaktadr. lem bu ekilde satr says
bitinceye kadar devam etmektedir. Dngler bittiinde tablo kapatlmakta ve program
tamamlanmaktadr.

Program altrldnda aadaki ekilde bir grnt elde edilmektedir:


3.5.5.2. While Dngs

While dngs for dngs ile ayn ilemi yapmaktadr. While Dngs, tanmlanan koul
saland srece dng ierisine yazlan komut ifadesinin veya komut ifadelerinin altrlmasn
salar.

art ifadesinin doruluu her dngnn banda kontrol edilir, buna gre dngnn ierisindeki
komut ifadeleri altrlmaya devam eder ya da dng sona erer. Eer art salanmyorsa dng hi
almaz.

While dngsnn kalb aadaki gibidir:


while(art)
{
Yaplacak ilemler
}

rnek bir program zerinde while dngsn inceleyelim. Daha nce for dngs ile
yaptmz 1 den 10 a kadar olan saylar yazdran program while dngs ile yazalm. Bylece hem
while dngsnn kullanmn hem de iki dng arasndaki farklar grm olacaz.

Yukardaki programda ilk olarak tanmlanan bir "i" deikenine 1 deeri atanmaktadr. While
dngs, "i", 10 dan kk olduu srece alacak ekilde kurulmutur.

Programn 5. ve 6. satrlarnda i'nin deeri ekrana yazdrlmakta ve bir satr alta


inilmektedir. $i++; komutu nemlidir, nk "i" deeri bu komutla deitirilmektedir.

Dngmz i deerine bal olarak kurulmutur. i deerinin sabit kalmas durumunda


($i<=10) ifadesi (1<=10) olarak kalacandan srekli true sonucunu dndrecektir.

While (True): Dngye gir,


While (False): Dngye girme,
anlamna gelmektedir.
Dikkat edilmesi gereken bir baka nokta ise $i++ ifadesi (Bu deer deiiklii
komutunu farkl art ve azalmalar salayacak ekilde de yazabilirsiniz.) dngmzn
sonunda olduu iin dngmzn son alt seferde (i=10 durumunda) son bir kez daha
bir artrlarak 11e eit olacaktr. 11<=10 ifadesi false sonucu dndrdnden dng almayacaktr.
rnek: Bu uygulamada alfa numerik karakterleri (Trke karaktersiz) yan yana aralarna
tire(-) iareti koyarak while dngs yardmyla yazdralm.

Bu program altrld zaman ekranda aadaki gibi bir grnt verir:

Bu programn, dier uygulamalardan farkl olarak sadece numerik(saysal) karakterde deil alfa
numerik(alfabetik) karakterlerde de artrma ve azaltma ilemi yapabildiini grdk.

You might also like