break - continue - label:
Standart kullanımda döngüler koşul kontrol edildiğinde true
ise döngüye girer, kod bloklarını döngü bloğunun sonuna kadar yürütür ve tekrar koşulu kontrol eder. Bu böyle devam eder...
Fakat sizler kod bloklarının herhangi bir noktasında döngüyü sonlandırmak, kodları atlayarak sonraki tekerrüre geçmek veya daha üst bloktaki döngüyü kontrol etmek isteyebilirsiniz.
break
Komutu
break
KomutuBu komutu daha önce switch - case
yapısında görmüştük. break
komutu döngü bloklarını sonlandırmak için kullanılabilir. Buna döngüler de dahil. Örnek.
for (let i = 0; ; i++) { //normalde sonsuz döngü
alert(i);
if (i == 2) break; // i=2 olunca döngü kırılır.
}
let i = 0;
while (true) { //normalde sonsuz döngü
i++;
alert(i);
if (i == 3) break; // i=3 olunca döngü kırılır.
}
if
ile kullanmak şart değildir.
for (let i = 0; ; i++) { // normalde sonsuz döngü
alert(i);
break;
alert('Bu uyarılar ekranda görülmeyecek');
alert('Çünkü döngü kırıldı');
}
let i = 0;
while (true) { //normalde sonsuz döngü
i++;
alert(i);
break;
alert('Bu uyarılar ekranda görülmeyecek');
alert('Çünkü döngü kırıldı');
}
break
komutu sonsuz döngü yapılarıyla sık kullanılır.
continue
Komutu
continue
Komutucontinue
komutu bir döngünün doğrudan bir sonraki döngü adımına (tekerrüre) geçmesini sağlar. continue
komutundan sonraki kodlar yürütülmez bir sonraki döngü adımı (tekerrür) başlar. Örnek.
for (let i = 1; i < 4 ; i++) {
if (i == 2) continue; // 2.Döngü uyarısı continue sebebiyle alınamaz.
alert(`${i}. Döngü`);
}
for (let i = 1; i < 4 ; i++) {
if (i < 3) continue; // 1.Döngü ve 2.Döngü uyarısı alınamaz.
alert(`${i}. Döngü`);
}
let i = 0;
while (i < 3) {
i++;
if (i == 2) continue;
alert(`${i}. Döngü`)
}
Bu komutlar virgül operatörleri ile kullanıldığında yazım hatası verir. Bu sebeple virgül veya koşullu operatör ile kullanılmaz.
:
Etiket (label) Tanımlayıcısı
:
Etiket (label) Tanımlayıcısıbreak
ve continue
bulunduğunuz bloğu kontrol eder, peki ya daha üst blokta olan döngüleri alt bloktan nasıl kontrol ederiz. Bunun için :
tanımlayıcısı kullanılır. Örnek.
ust_dongu: for (let i = 1; i < 4; i++) {
for (let j = 1; j < 4; j++) {
alert(`${i}. Döngünün içindeki ${j}. Döngü`);
if (j == 3) break ust_dongu;
}
}
// veya etkiketi bir satır yukarı tek başına da koyabilirsiniz.
ust_dongu:
for (let i = 1; i < 4; i++) {
for (let j = 1; j < 4; j++) {
if (i == 2) break ust_dongu;
alert(`${i}. Döngünün içindeki ${j}. Döngü`);
}
}
while
döngüsü ile de kullanılabilir. Örnek.
let i = 0, j = 0;
ust_dongu:
while (i < 4) {
i++;
while (j < 4) {
j++;
alert(`${i}. Döngünün içindeki ${j}. Döngü`);
if (j == 3) break ust_dongu;
}
}
Aynı tanımlamalar continue
ile de yapılabilir. Bu durumda sonraki döngü (tekerrür) için geçeceği yeri belirtmiş oluruz. Örnek.
ust_dongu:
for (let i = 1; i < 4; i++) {
for (let j = 1; j < 4; j++) {
if (j == 2) continue ust_dongu;
alert(`${i}. Döngünün içindeki ${j}. Döngü`);
}
}
Farklı örnek olarak.
ust_dongu:
for (let i = 1; i < 4; i++) {
for (let j = 1; j < 4; j++) {
alert(`${i}. Döngünün içindeki ${j}. Döngü`);
if ( confirm('Döngüyü bitirmek istiyor musunuz?') ) break ust_dongu;
}
}
Etiket tanımlayıcıları break
ve continue
komutları ile birlikte döngüler için kullanılabilirler.
Last updated