JavaScript Mülakat Soruları: Temelden İleri Seviyeye – Part 10

javascript mülakat soruları part 10 for döngüsü

JavaScript mülakat soruları 10. bölümden merhabalar. 90 soruyu geride bıraktığımız serimiz devam ediyor. Temel konulardan başlayarak JavaScript mülakat soruları serimizi tamamlayacağız. Eğer önceki bölümlerden başlamak isterseniz buradan JavaScript kategorisi altında diğer bölümlere ulaşabilirsiniz. Bu bölümde JavaScript for döngüsü konusuna odaklı soruları göreceğiz. Şimdi kaldığımız yer olan 91. sorudan devam edelim.


SORU 91

let i = 0;
while(i < 5) {
console.log(i)
};

Karşımıza ilk defa while döngüsü çıkıyor. While döngüsünü belli bir koşulu sağlamak için kullanırız. Burada i adında bir değişken belirledik ve değerini de 0 olarak ayarladık.

while bloğu içinde i, 5’ten küçük olana kadar artmaya devam etmeli. Evet, başta her şey yoluna görünüyor ancak burada ince bir ayrıntı var. i’ye herhangi bir artırma işlemi gerçekleştirmiyoruz. (yani i++) Bu yüzden burada sonsuz bir döngü (infinite loop) oluşur. i değeri 0’dan başlar ve sonsuza kadar 0 olarak devam eder. Yani konsola sonsuza kadar 0 yazdırılır. (Denemeyin, bilgisayar kilitleniyor. 😁)

i++ ifadesi olsaydı bu durumda konsolda sırasıyla 0, 1, 2, 3, 4 yazdırılacaktı.

SORU 92

let i = 7;

while(i) {
console.log(i--);
};

i değişkenimizin değeri 7.

while bloğunda i, 7’den başlayarak birer birer azalır. Döngü bozulana kadar azaltma işlemi devam eder. Konsolda sırasıyla 7, 6, 5, 4, 3, 2, 1 çıktılarını görürüz. Peki neden sonsuz azalma işlemi olmuyor? Bunun sebebi döngünün 0’da bozulmasıdır. Çünkü 0 falsy bir değere sahiptir. true olan döngü, false olduğunda sonlanacaktır.

SORU 93

for (let i = 0; i < 4; ++i) console.log(i);

Burada da JavaScript for döngüsü karşımıza çıkıyor. JavaScript for döngüsü yapısının while döngüsünden farkı koşulun belli bir aralıkta tanımlanmasıdır. While göndüsünde genellikle bir aralık olmaz ve koşul sağlanana kadar döngü devam eder.

i değişkeninin başlangıç değeri 0. i’nin değeri 4’ten küçük olduğu sürece birer birer artar. (for döngüsü içindeki ifadenin yorumu) Buna göre i 0’dan başlayarak 3’e kadar artacaktır. En son 4’e gelmeden durmuş olacaktır yani. Böylece konsolda sırasıyla 0, 1, 2, 3 çıktılarını görürüz.

SORU 94

for (let i = 2; i < 6; i++) {
if(i === 4) continue;
console.log(i);
};

i değişkenimizin başlangıç değeri 2.

i, 6’dan küçük olduğu sürece birer birer artar. Ancak for bloğunun içinde if(i === 4) continue; ifadesi var. Bu ifade i’nin 4’e eşit olması durumunda bu değeri atlayarak devam eder. Bu durumda i, 2’den başlayarak 5’e kadar devam edecek ancak devam ederken 4 değerini atlayacaktır. Bu durumda konsolda 2, 3, 5 değerlerini görürüz.

SORU 95

const antiviruses = ["Avast", "Kaspersky"];

for (let i = 0; i < antiviruses.length; i++) {
console.log(i, "-", antiviruses[i]);
};

antiviruses adlı dizimiz iki öge içeriyor. Bunlar “Avast” ve “Kaspersky” öğeleri.

for döngüsü 0’dan başlar ve antiviruses dizisinin uzunluğundan küçük olduğu sürece birer birer artar. antiviruses dizimizin uzunluğu iki öğe içerdiği için 2’dir. Bu durumda i, 0 ve 1 değerlerini alacaktır.

Konsolda yazdırmak istediğimiz ifade i değişkeninin değeri, – ifadesi ve antiviruses dizisini i. değeridir. Bu durumda i’nin ilk değeri 0 olduğu için ilk olarak konsolda 0 ‘-‘ ‘Avast’ ifadesini görürüz. Çünkü console.log(i, “-“, antiviruses[i]); ifadesinde i yerine 0 koyduk.

i’nin değeri 1 iken bu sefer console.log(i, “-“, antiviruses[i]); ifadesinde i yerine 1 koyarız. Bu durumda konsolda bu sefer 1 ‘-‘ ‘Kaspersky’ ifadesini görürüz.

SORU 96

const antiviruses = ["Avast", "Kaspersky"];

for (let prop in antiviruses) {
console.log(prop, "-", antiviruses[prop]);
};

Üstteki soru ile öğelerimiz aynı ancak bu sefer karşımıza for…in yapısı çıkıyor. JavaScript’te in ifadesi bize dizimizin indeks değerini verir.

for (let prop in antiviruses) {…}; ifadesi antiviruses dizisinin içindeki indeks değerlerini alır. antiviruses dizimizin içinde iki öğe var. Bunlar 0. indekste yer alan Avast ve 1. indekste yer alan Kaspersky. Bu durumda prop yerine önce 0 değeri gelir. Konsolda önce 0 – Avast çıktısını görürüz. Ardından prop yerine 1 değeri gelir. Bu durumda da konsolda 1 – Kaspersky çıktısını görürüz.

Fark ettiyseniz üstteki soruda çıktımızda tırnak işareti yer alıyordu. Şimdi ise yer almıyor. Bunun sebebi for döngüsü ile for…in döngüsünün farklı davranmasından kaynaklanıyor. for döngüsü indis numaraları üzerinden elemanlara erişir. Bu yüzden çıktıda tırnak işareti vardır. for…in döngüsünde ise dizinin özelliklerini dolaşırız. Bu yüzden çıktıda tırnak işareti olmaz.

SORU 97

const antiviruses = ["Avast", "Kaspersky"];

for (let prop of antiviruses) {
console.log(prop);
};

Bu soruda karşımıza let…of yapısı çıkıyor. for…in döngüsünde indeks numaralarını değerlendiriyorduk. for…of döngüsünde ise indekse denk gelen değerleri döndürürüz. Bu durumda konsolda sırasıyla Avast ve Kaspersky çıktılarını görürüz.

SORU 98

let i = 0;

for (i = 0; i < 6; i++) {
console.log(i);
};

console.log(i);

for bloğu içinde i değişkeninin değeri 0’dan başlar ve 6’dan önceki en küçük değere kadar artmaya devam eder. for bloğu içindeyken i, 6 değerine kadar ulaşır. Ancak 6 değeri koşulu sağlamadığından bozulur. Bu yüzden for döngüsü içinde i değişkeni sırasıyla 0, 1, 2, 3, 4, 5 değerlerini alır. Ancak for bloğu dışında da bir konsol ifademiz var. for döngüsünden bağımsız olarak bu ifade i’nin en güncel değerini konsola yazdırır. Yani 6’yı. Bu durumda konsolda sırasıyla 0, 1, 2, 3, 4, 5, 6 değerlerini görürüz.

SORU 99

let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let sum = 0;

for(let i = 0; i < numbers.length; i++){
  if(numbers[i] % 2 === 0){
    sum += numbers[i];
  }
}

console.log(sum);

Bu for döngüsünde i’yi 0’dan başlatıyoruz. i, birer birer artar. for döngüsü içindeki koşullu if ifadesi, numbers dizisinin i. değerinin 2’ye bölümünden kalanın 0 olması durumunda sum değişkeninin değerini numbers dizisinin i. değeri kadar artırıyor. i yerine önce 0. indeksteki değer gelir. 0. indeksteki değer 1 olduğu için koşul sağlanmaz. Dolayısıyla sum değişkeninde herhangi bir değişiklik olmaz. Döngü devam eder. Bu sefer 1. indeksteki değer i yerine gelir. Yani 2 sayısı. Bu durumda koşul sağlanır ve i yerine 2 gelerek sum’ın yeni değeri 2 olur. Ardından kalan koşulları sırasıyla 3., 5., 7. ve 9. indeksteki değerler sağlar. Yani sırasıyla 4, 6, 8 ve 10 değerleri. Bu durumda en başta değeri 2 olan sum, kümülatif şekilde ilerleyerek toplanacaktır. Yani 2+4+6+8+10 işleminin sonucu bize sum’ın nihai değerini verir. Sonuç olarak konsolda 30 çıktısını görürüz.

SORU 100

let numbers = [10, 25, 3, 47, 15, 80, 23];
let max = numbers[0];

for(let i = 1; i < numbers.length; i++){
  if(numbers[i] > max){
    max = numbers[i];
  }
}

console.log(max);

numbers dizimiz 7 elemandan oluşuyor. max değişkenimiz ise numbers dizimizin 0. indeksindeki elemana eşit. Bu durumda max değişkenimizin değeri 10 olacaktır.

for döngüsüne baktığımızda i değerimiz 1’den başlayarak numbers dizimizin uzunluğundan küçük değerleri içererek birer birer artacak. numbers dizimizin uzunluğu 7 olduğu için i, 1’den başlayıp 6’ya kadar artacaktır. Yani i, sırasıyla 1, 2, 3,4, 5, 6 değerlerini alacaktır.

Koşullu ifademizde numbers yerine önce 1 koyarız. Bu durumda koşulumuz numbers[1] > max koşulunu kontrol eder. numbers dizimizin 1. indeksindeki eleman 25 olduğu için aslında 25 > max değerini kontrol ediyoruz. max değişkenimizin değeri de hatırlayacağımız üzere 10 idi. 25 > 10 olduğu için koşul sağlanır ve max = numbers[i] ifadesinden max’in değeri 25 olur. Ardından sırasıyla i yerine ilgili indeks numaralarını yerleştirdiğimizde sırasıyla aşağıdaki koşulları kontrol ederiz:

  • 3 > 25 (Koşul sağlanmaz)
  • 47 > 25 (Koşul sağlanır ve max’in yeni değeri 47 olur)
  • 15 > 47 (Koşul sağlanmaz)
  • 80 > 47 (Koşul sağlanır ve max’in yeni değeri 80 olur)
  • 23 > 80 (Koşul sağlanmaz)

Sonuç olarak en son sağlanan koşul geçerli olur. Bu durumda konsolda 80 çıktısını görürüz.


100 soruyu devirdiğimiz JavaScript mülakat soruları serimizin bu bölümünü, for döngüsü üzerine odaklanarak tamamladık. Bu bölümde, for döngüsünün temellerine hakim olduk. İster basit bir sayı listesi üzerinde yineleme yapalım, ister karmaşık bir veri yapısını işleyelim, for döngüsü JavaScript’te her zaman kullanabileceğimiz bir yapı.

JavaScript mülakat soruları serimizin devamında, JavaScript’in diğer önemli konularını ele alacağız. Takipte kalın. Yeni yazılarda ve rehberlerde görüşmek dileğiyle!

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Scroll to Top