- Katılım
- 2 Mar 2015
- Konular
- 59,189
- Mesajlar
- 88,441
- Çözüm
- 109
- Online süresi
- 4mo 16d
- Reaksiyon Skoru
- 14,280
- Altın Konu
- 2,398
- TM Yaşı
- 11 Yıl 3 Ay 7 Gün
- Başarım Puanı
- 1,051
- MmoLira
- 695,092
- DevLira
- 234
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
"do…while" döngüsü PHP'de bulunan bir diğer döngü yapısıdır. Bu döngü türü while döngüsüne benzerdir, ancak test koşulu yeni bir yinelemenin başlangıcında değil, her yinelemenin sonunda kontrol edilir.
While döngüsü , döngüye girmeden önce doğruluk koşulunu doğrular, oysa "do…while" döngüsünde doğruluk koşulu, döngüye tekrar girmeden önce doğrulanır. Sonuç olarak, "do…while" döngüsünün doğruluk koşulundan bağımsız olarak en az bir yinelemeye sahip olması garanti edilir.
Aşağıdaki şekil, "while" döngüsü ile "do…while" döngüsü arasındaki farkı, ikisinin karşılaştırmalı akış şeması gösterimini kullanarak göstermektedir.
"do…while" döngüsünü oluşturmanın sözdizimi, C dilindeki karşılığına benzerdir.
Aşağıdaki çıktıyı üretecektir:
Bu nedenle, "do…while" ve "while" döngülerinin benzer şekilde davrandığı söylenebilir. Ancak, sayaç değişkeninin (bu durumda $i ) başlangıç değeri while anahtar sözcüğünün önündeki parantez içindeki test ifadesinde kullanılan değerden daha büyük bir değere ayarlandığında fark belirginleşecektir.
Aşağıdaki çıktıyı üretecektir:
Sonuç, while döngüsünün herhangi bir yineleme gerçekleştirmediğini gösteriyor çünkü koşul başlangıçta yanlış ( $i , test koşulu $i<=5'ten büyük olan 10 olarak başlatılır ). Öte yandan, "do…while" döngüsü, sayaç değişkeni $j, test koşulundan büyük bir değere başlatılmış olsa bile ilk yinelemeyi gerçekleştirir.
Bu nedenle, "do…while" döngüsünün en az bir yinelemeyi garantilediği sonucuna varabiliriz çünkü test koşulu döngü bloğunun sonunda doğrulanır. While döngüsü, döngü bloğuna girmeden önce test koşulu doğrulandığı için herhangi bir yineleme yapmayabilir.
Başka bir sözdizimsel fark, "do…while" içindeki while ifadesinin noktalı virgülle sonlanmasıdır. While döngüsü durumunda, parantezi kıvırcık parantezli bir döngü bloğu takip eder.
Bunların dışında bir fark yoktur. Bu iki tip döngüyü birbirinin yerine kullanabilirsiniz.
Aşağıdaki çıktıyı üretecektir:
Aşağıdaki çıktıyı üretecektir:
Aşağıdaki çıktıyı üretecektir:
While döngüsü , döngüye girmeden önce doğruluk koşulunu doğrular, oysa "do…while" döngüsünde doğruluk koşulu, döngüye tekrar girmeden önce doğrulanır. Sonuç olarak, "do…while" döngüsünün doğruluk koşulundan bağımsız olarak en az bir yinelemeye sahip olması garanti edilir.
Aşağıdaki şekil, "while" döngüsü ile "do…while" döngüsü arasındaki farkı, ikisinin karşılaştırmalı akış şeması gösterimini kullanarak göstermektedir.
"do…while" döngüsünü oluşturmanın sözdizimi, C dilindeki karşılığına benzerdir.
do {
statements;
}
while (expression);
Örnek
İşte 1'den 5'e kadar yineleme numaralarını yazdıran "do…while" döngüsünün basit bir örneği.
PHP:
<?php
$i=1;
do{
echo "Iteration No: $i \n";
$i++;
}
while ($i<=5);
?>
Aşağıdaki çıktıyı üretecektir:
Iteration No: 1
Iteration No: 2
Iteration No: 3
Iteration No: 4
Iteration No: 5
Örnek
Aşağıdaki kod bir while döngüsü kullanır ve aynı çıktıyı üretir.
PHP:
<?php
$i=1;
while ($i<=5){
echo "<h3>Iteration No: $i</h3>";
$i++;
}
?>
Bu nedenle, "do…while" ve "while" döngülerinin benzer şekilde davrandığı söylenebilir. Ancak, sayaç değişkeninin (bu durumda $i ) başlangıç değeri while anahtar sözcüğünün önündeki parantez içindeki test ifadesinde kullanılan değerden daha büyük bir değere ayarlandığında fark belirginleşecektir.
Örnek
Aşağıdaki kodda, her iki döngü de; while ve " do…while " kullanılmıştır. While döngüsü için sayaç değişkeni $i'dir ve "do…while" döngüsü için $j'dir. Her ikisi de 10 (5'ten büyük herhangi bir değer) olarak başlatılmıştır.
PHP:
<?php
echo "while Loop \n";
$i=10;
while ($i<=5){
echo "Iteration No: $i \n";
$i++;
}
echo "do-while Loop \n";
$j=10;
do{
echo "Iteration No: $j \n";
$j++;
}
while ($j<=5);
?>
Aşağıdaki çıktıyı üretecektir:
while Loop
do - while Loop
Iteration No: 10
Sonuç, while döngüsünün herhangi bir yineleme gerçekleştirmediğini gösteriyor çünkü koşul başlangıçta yanlış ( $i , test koşulu $i<=5'ten büyük olan 10 olarak başlatılır ). Öte yandan, "do…while" döngüsü, sayaç değişkeni $j, test koşulundan büyük bir değere başlatılmış olsa bile ilk yinelemeyi gerçekleştirir.
Bu nedenle, "do…while" döngüsünün en az bir yinelemeyi garantilediği sonucuna varabiliriz çünkü test koşulu döngü bloğunun sonunda doğrulanır. While döngüsü, döngü bloğuna girmeden önce test koşulu doğrulandığı için herhangi bir yineleme yapmayabilir.
Başka bir sözdizimsel fark, "do…while" içindeki while ifadesinin noktalı virgülle sonlanmasıdır. While döngüsü durumunda, parantezi kıvırcık parantezli bir döngü bloğu takip eder.
Bunların dışında bir fark yoktur. Bu iki tip döngüyü birbirinin yerine kullanabilirsiniz.
"do…while" Döngüsünü Azaltma
Azalan sayımla bir "do…while" tasarlamak için, sayaç değişkenini daha yüksek bir değere ayarlayın, her yinelemede sayacın değerini azaltmak için döngü içinde azaltma operatörünü (--) kullanın ve sayaç istenen son değerden büyük olana kadar döngüyü çalıştırmak için while parantezinde test koşulunu ayarlayın.Örnek
Aşağıdaki örnekte sayaç 5'ten 1'e düşmektedir.
PHP:
<?php
$j=5;
do{
echo "Iteration No: $j \n";
$j--;
}
while ($j>=1);
?>
Aşağıdaki çıktıyı üretecektir:
Iteration No: 5
Iteration No: 4
Iteration No: 3
Iteration No: 2
Iteration No: 1
Bir Dizgeyi Ters Sırada Gezin
PHP'de bir dize, karakterlerin dizinlenmiş bir dizisi olarak ele alınabilir. Aşağıdaki gibi azalan bir "do…while" döngüsü çalıştırarak, uçtan uca birer karakteri çıkarabilir ve görüntüleyebilirsiniz.
PHP:
<?php
$string = "TutorialsPoint";
$j = strlen($string);
do{
$j--;
echo "Character at index $j : $string[$j] \n";
}
while ($j>=1);
?>
Aşağıdaki çıktıyı üretecektir:
Character at index 13 : t
Character at index 12 : n
Character at index 11 : i
Character at index 10 : o
Character at index 9 : P
Character at index 8 : s
Character at index 7 : l
Character at index 6 : a
Character at index 5 : i
Character at index 4 : r
Character at index 3 : o
Character at index 2 : t
Character at index 1 : u
Character at index 0 : T
İç içe "do…while" Döngüleri
For döngüsü veya while döngüsü gibi , iç içe "do…while" döngüleri de yazabilirsiniz. Aşağıdaki örnekte, üstteki "do…while" döngüsü $i ile yinelemeyi sayar, içteki "do…while" döngüsü $j'yi artırır ve her seferinde $i*j'nin ürününü yazdırır, böylece tabloları 1'den 10'a yazdırır.
PHP:
<?php
$i=1;
$j=1;
do{
print "\n";
do{
$k = sprintf("%4u",$i*$j);
print "$k";
$j++;
}
while ($j<=10);
$j=1;
$i++;
}
while ($i<=10);
?>
Aşağıdaki çıktıyı üretecektir:
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100

