TypeScript Tekrar İfadeleri
Bu makale, TypeScript'teki tekrar ifadelerini açıklar.
YouTube Video
TypeScript'te for
ifadesi
TypeScript'teki for
ifadesi, tekrarlı işlemler yapmak için temel bir döngü yapısıdır. for
döngüsünde, belirli bir sayıya veya koşula dayalı olarak aynı kod bloğu tekrar tekrar çalıştırılabilir.
Temel Sözdizimi
1for (initialization; condition; update) {
2 // Code to execute repeatedly while the condition is true
3}
- inalizasyon: Bu, döngüye başlamadan önce sadece bir kez idam edilen kısımdır. döngü sayacı gibi başlangıç değişkenleri.
- Conditions (' conditions'): döngünün devam ettirip devam etmeyeceğini belirler. Eğer doğruysa, döngüye devam edin ve eğer sahte, çıkış.
- Güncelleme (tarihi): Her döngünün sonunda hareket edin ve döngü sayacı güncelleştirme.
Örnek 1: Temel for
döngüsü
Aşağıdaki örnekte, 0
ile 4
arasındaki sayıları sırayla çıktılar.
1for (let i = 0; i < 5; i++) {
2 console.log("The value of i is: " + i);
3}
4// Outputs:
5// The value of i is: 0
6// The value of i is: 1
7// The value of i is: 2
8// The value of i is: 3
9// The value of i is: 4
Örnek 2: Dizi ile for
döngüsü
Bir for
döngüsünü kullanarak bir dizinin elemanlarını sırayla işleyebilirsiniz.
1let fruits: string[] = ["apple", "banana", "cherry"];
2
3for (let i = 0; i < fruits.length; i++) {
4 console.log("Fruit: " + fruits[i]);
5}
6// Outputs:
7// Fruit: apple
8// Fruit: banana
9// Fruit: cherry
Örnek 3: for-in
döngüsü
for-in
döngüsü, bir nesnenin özelliklerini veya bir dizinin dizinlerini sırayla dolaşmak için kullanılır.
1let car = { brand: "Toyota", model: "Corolla", year: 2020 };
2
3for (let key in car) {
4 console.log(key + ": " + car[key]);
5}
6// Outputs:
7// brand: Toyota
8// model: Corolla
9// year: 2020
Örnek 4: for-of
döngüsü
for-of
döngüsü, diziler veya metinler gibi yinelenebilir nesnelerden her bir elemanın değerini sırayla almak için kullanılır.
1let colors: string[] = ["red", "green", "blue"];
2
3for (let color of colors) {
4 console.log("Color: " + color);
5}
6// Outputs:
7// Color: red
8// Color: green
9// Color: blue
Örnek 5: İç içe for
Döngüsü
Bir başka for
döngüsünün içinde bir for
döngüsü kullanmak da mümkündür, buna iç içe döngü denir. Bu, diğer şeylerin yanı sıra, çift döngüler oluşturmanıza olanak tanır.
1for (let i = 0; i < 3; i++) {
2 console.log("Outer loop i: " + i);
3 for (let j = 0; j < 2; j++) {
4 console.log(" Inner loop j: " + j);
5 }
6}
7// Outputs:
8// Outer loop i: 0
9// Inner loop j: 0
10// Inner loop j: 1
11// Outer loop i: 1
12// Inner loop j: 0
13// Inner loop j: 1
14// Outer loop i: 2
15// Inner loop j: 0
16// Inner loop j: 1
Özet
for
ifadesi, belirtilen sayılara veya koşullara dayalı olarak tekrarlı işlem gerçekleştirir.for-in
, bir nesnenin özelliklerini veya bir dizinin indekslerini almak için kullanılır.for-of
, diziler gibi tekrarlanabilir nesnelerin öğelerinin değerlerini alır.- İç içe
for
döngüleri ile karmaşık tekrarlı işlemler de mümkündür.
TypeScript'teki for
ifadesi, diğer döngülerle benzer şekilde güçlü ve esnek tekrarlı işlemler sağlar.
TypeScript'te While İfadeleri
TypeScript'te, bir while
ifadesi, belirtilen koşul true
olduğu sürece tekrarlı bir işlemi gerçekleştiren bir döngü yapısıdır. for
döngüsüne benzer şekilde, while
döngüsü, yineleme sayısının önceden belirlenmediği veya tekrarı bir koşula dayalı olarak kontrol etmek istediğiniz durumlar için uygundur.
Temel Sözdizimi
1while (condition) {
2 // Code to execute repeatedly while the condition is true
3}
- Koşul: Döngünün çalıştığı durum. Bu koşul
true
olduğu sürece döngü devam eder vefalse
olduğunda durur.
Örnek 1: Temel while
Döngüsü
Aşağıdaki örnekte, i
5'ten küçük olduğu sürece i
değerini çıktılar.
1let i: number = 0;
2
3while (i < 5) {
4 console.log("The value of i is: " + i);
5 i++;
6}
7// Outputs:
8// The value of i is: 0
9// The value of i is: 1
10// The value of i is: 2
11// The value of i is: 3
12// The value of i is: 4
Bu örnekte, i
5'e eşit veya daha büyük olduğunda döngü sona erer çünkü koşul false
olur.
Örnek 2: Sonsuz Döngü Örneği
Bir while
döngüsündeki koşul her zaman true
ise, bu sonsuz bir döngüye dönüşebilir. Bu genellikle programın planlandığı şekilde durmasını engeller, bu yüzden dikkat edilmelidir.
1let x: number = 0;
2
3while (true) {
4 console.log("The value of x is: " + x);
5 x++;
6 if (x >= 5) {
7 break; // Exit the loop when the condition is met
8 }
9}
10// Outputs:
11// The value of x is: 0
12// The value of x is: 1
13// The value of x is: 2
14// The value of x is: 3
15// The value of x is: 4
Bir koşul sağlandığında döngüden zorla çıkmak için break
ifadesini kullanabilirsiniz.
Örnek 3: do-while
Döngüsü
do-while
döngüsü, döngü işleminin en az bir kez gerçekleştirildiği bir yapıdır. Koşul işlemden sonra değerlendirildiğinden, koşul false
olsa bile işlem en az bir kez çalışır.
1let j: number = 5;
2
3do {
4 console.log("The value of j is: " + j);
5 j++;
6} while (j < 5);
7// Outputs: The value of j is: 5
Bu örnekte, j
başından beri 5
tir ve j < 5
false
tur, ancak bir do-while
döngüsünde, koşula bakılmaksızın en az bir kez çalışır.
Özet
while
döngüsü, koşultrue
olduğu sürece işlemi tekrar eder.- Döngü sonlandırma koşul belirsizse, sonsuz döngülere dikkat etmeniz gerekir.
do-while
döngüsü, işlemin en az bir kez gerçekleştirildiği noktada normal birwhile
döngüsünden farklıdır.
TypeScript'teki while
ifadesi, belirsiz yineleme sayılarıyla döngü işlemleri için ya da dinamik koşul kontrolü gerektiğinde yararlıdır.
break
ve continue
break
ve continue
ifadelerini döngüler içinde kullanabilirsiniz.
break
, bir döngüyü erken sonlandırmak için kullanılır.continue
, mevcut tekrarı atlamak ve bir sonraki tekrara geçmek için kullanılır.
break
Örneği
1for (let i = 0; i < 10; i++) {
2 if (i === 5) {
3 break; // Exits the loop when i is 5
4 }
5 console.log(i);
6}
7// Outputs 0, 1, 2, 3, 4
8
9let i = 0;
10
11while (i < 10) {
12 if (i === 5) {
13 break; // Ends the loop when i is 5
14 }
15 console.log(i++);
16}
17// Outputs 0, 1, 2, 3, 4
Bu durumda, i
değeri 5 olduğunda break
çalıştırılır. Sonuç olarak, 0
ile 4
arasındaki sayılar görüntülenir.
continue
Örneği
1for (let i = 0; i < 5; i++) {
2 if (i === 2) {
3 continue; // Skips when i is 2
4 }
5 console.log(i);
6}
7// Outputs 0, 1, 3, 4
8
9let i = 0;
10
11while (i < 5) {
12 i++;
13 if (i === 3) {
14 continue; // Skips when i is 3
15 }
16 console.log(i);
17}
18// Outputs 1, 2, 4, 5
Bu durumda, i
değeri 2
olduğunda continue
çalıştırılır. Sonuç olarak, 2
hariç diğer sayılar görüntülenir.
TypeScript'te İç İçe Döngüler
İç içe döngü, bir döngünün başka bir döngü içinde kullanıldığı bir yapıdır. TypeScript'te for
, while
, ve do-while
gibi döngü yapıları desteklenir. İç içe döngüler kullanarak iki boyutlu dizileri (matrisleri) işleyebilir ve birden fazla koşula dayalı işlemleri kolaylaştırabilirsiniz.
Temel Sözdizimi
İç içe bir döngünün temel söz dizimi şu şekildedir.
1for (let i: number = 0; i < n; i++) {
2 for (let j: number = 0; j < m; j++) {
3 // Processing for the inner loop
4 }
5}
Dış döngünün her çalıştırılmasında, iç döngü tüm tekrarlarını tamamlar. Bu yapı, birden fazla döngü veya veri yapısını işlerken oldukça kullanışlıdır.
TypeScript'te İç İçe Döngü Örneği
İki Boyutlu Bir Diziyi Gezme
İç içe döngüler, iki boyutlu diziler gibi çok boyutlu veri yapılarını işlerken sıklıkla kullanılır. Aşağıdaki örnekte, iki boyutlu bir dizinin elemanları gezilir ve değerleri konsola yazdırılır.
1const matrix: number[][] = [
2 [1, 2, 3],
3 [4, 5, 6],
4 [7, 8, 9]
5];
6
7for (let row: number = 0; row < matrix.length; row++) {
8 for (let col: number = 0; col < matrix[row].length; col++) {
9 console.log(`matrix[${row}][${col}] = ${matrix[row][col]}`);
10 }
11}
12// Output
13// matrix[0][0] = 1
14// matrix[0][1] = 2
15// matrix[0][2] = 3
16// matrix[1][0] = 4
17// matrix[1][1] = 5
18// matrix[1][2] = 6
19// matrix[2][0] = 7
20// matrix[2][1] = 8
21// matrix[2][2] = 9
Bu örnekte, matrix
isimli iki boyutlu bir dizi gezilmektedir. Dış döngü satırları, iç döngü ise sütunları işler ve her bir elemanı sırayla görüntüler.
İki dizinin kombinasyonu
Sonrasında, iki dizinin tüm kombinasyonlarını hesaplamaya yönelik bir örnek sunacağız. Örneğin, iki diziden birer eleman seçerek tüm olası çiftleri üretebilirsiniz.
1const array1: string[] = ['A', 'B', 'C'];
2const array2: number[] = [1, 2, 3];
3
4for (let i: number = 0; i < array1.length; i++) {
5 for (let j: number = 0; j < array2.length; j++) {
6 console.log(`Pair: (${array1[i]}, ${array2[j]})`);
7 }
8}
9// Output
10// Pair: (A, 1)
11// Pair: (A, 2)
12// Pair: (A, 3)
13// Pair: (B, 1)
14// Pair: (B, 2)
15// Pair: (B, 3)
16// Pair: (C, 1)
17// Pair: (C, 2)
18// Pair: (C, 3)
Bu örnekte, array1
dizisi (metin) ile array2
dizisi (sayı) arasındaki tüm çiftler oluşturulmaktadır. Dış döngü array1
'den elemanları alırken, iç döngü array2
'den elemanları alır ve her bir çifti görüntüler.
Üçlü bir döngü ile koordinatların üretilmesi
Örneğin, üçlü iç içe geçmiş döngüler kullanarak üç boyutlu bir alanda koordinatlar oluşturabilirsiniz.
1for (let x: number = 0; x < 3; x++) {
2 for (let y: number = 0; y < 3; y++) {
3 for (let z: number = 0; z < 3; z++) {
4 console.log(`Coordinate: (${x}, ${y}, ${z})`);
5 }
6 }
7}
8// Output
9// Coordinate: (0, 0, 0)
10// Coordinate: (0, 0, 1)
11// Coordinate: (0, 0, 2)
12// ...
13// Coordinate: (2, 2, 1)
14// Coordinate: (2, 2, 2)
Bu şekilde, üçlü iç içe geçmiş döngüler, üç boyutlu bir alanda kolayca koordinatlar oluşturmanıza olanak sağlar.
İç içe döngülerin performansı
İç içe döngüler kullanışlıdır ancak döngülerin derinliği arttıkça hesaplama maliyeti de hızla artar. Örneğin, dış döngü n
yineleme ve iç döngü m
yineleme yapıyorsa, toplam yineleme sayısı n * m
olacaktır. Bu daha da iç içe hale geldiğinde, hesaplama karmaşıklığı üstel olarak artar ve bu durum programın performansını etkileyebilir.
Üç diziyi dolaşırken oluşan hesaplama karmaşıklıkları aşağıda verilmiştir.
1const array1: number[] = [1, 2, 3];
2const array2: number[] = [4, 5, 6];
3const array3: number[] = [7, 8, 9];
4
5for (let i: number = 0; i < array1.length; i++) {
6 for (let j: number = 0; j < array2.length; j++) {
7 for (let k: number = 0; k < array3.length; k++) {
8 console.log(`Combination: (${array1[i]}, ${array2[j]}, ${array3[k]})`);
9 }
10 }
11}
Bu durumda, array1.length * array2.length * array3.length
hesaplanmalı ve tüm kombinasyonları işlemek için 3 * 3 * 3 = 27
yineleme yapılmalıdır.
İç içe döngülerin optimizasyonu
İç içe döngüler kullanırken, aşağıdaki optimizasyonları dikkate alarak performansı artırabilirsiniz.
- Erken çıkışlar ekleyin: Hedefe ulaşıldığında döngüden erken çıkış yaparak gereksiz yinelemeleri önleyin.
- Döngü değişkenlerini önbelleğe alın: Döngü içinde kullanılan değişkenlerin (özellikle uzunluklar ve aralıklar) değerlerini önceden önbelleğe alarak her defasında aynı hesaplama maliyetini düşürün.
- Veri yapısını değiştirin: Dizilerin ve nesnelerin yapısını gözden geçirerek belirli tekrarlamalı işlemleri hızlandırmak etkili olabilir.
Sonuç
İç içe döngüler, karmaşık veri işleme ve algoritmalar için güçlü bir araçtır. Ancak, döngü derinliği ve yineleme sayısı arttıkça performans sorunları meydana gelebilir. Uygun optimizasyonlar ve dikkatli bir tasarımla, iç içe döngüler TypeScript'te etkili bir şekilde kullanılabilir.
Yukarıdaki makaleyi, YouTube kanalımızda Visual Studio Code'u kullanarak takip edebilirsiniz. Lütfen YouTube kanalını da kontrol edin.